SQL 자주쓰는 쿼리 _ JOIN 편 !! # 2

반응형



간만에 포스팅 하네...

오늘은 저번 SQL 자주쓰는쿼리 _ JOIN 편 ( 크로스조인, 내부조인 ) 에 이은
동등조인 과 비동등 조인, 그리고 자연 조인을 포스팅 해야겠다...

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥



JOIN 1편을 보고 싶으면 아래 링크로..
http://underclub.tistory.com/41

원래 안할려 했는데 방문자 수가 급 증가 해서 또 하게되네 이거..ㅋㅋㅋ
뭐, 대부분 링크나 RSS 피드가 아닌 검색유입 이었고
댓글이나 그외 등등은 하나도 없었지만........... 어쨋든 감격은 감격..ㅋㅋ

각설하고 우선 동등 조인 부터

동등 조인 :  같은지를 테스트하는 내부 조인이다.


같은지를 테스트 하다니? 글로만 봐선 이해가 어렵다 -ㅁ-;;
나도 어렵다... 그래서 그림으로 그려봤다...

A테이블과 B테이블이 있을 시 해당 기본키와 참조키는 그림과 같을때엔
동등 조인을 써서 같은 데이터를 검색할 수 있다는거~!

SELECT A테이블칼럼, B테이블칼럼
FROM A테이블
INNER JOIN
B테이블
ON A테이블.B_id = B테이블.B_id;

쿼리는 굉장히 간단한데... INNER JOIN 과 ON 이 들어간다는 것만 주의...
아, 그리고 저기 ON 절의 등호 ( = ) 표시를 유의!!
동등 조인이니까 당연히 같다(=) 표시.

그럼 우선 테스트 해보고 ...


테스트 2 테이블 입니다... 여기선 A테이블에 해당되고...



테스트 3 테이블.... 여기에선 B테이블에 해당.



결과화면....
테스트2 테이블의 참조키인 값과 테스트3 테이블의 기본키인 값이
일치하는 값 만을 찾을 수 있다.



다음으로 비동등 조인~

음...비동등 조인은 제목 그대로 비동등 조인이다...
동등 조인의 반대 결과가 나올꺼라는건 누구나 예측 가능......................- 0 - ;;
하지만 좀 설명을 달자면,

비동등 조인 : 같지 않은 모든 행들을 반환한다. ' 누가 무엇이 없는지 ' 같을 때 유용하다.

정도 되시겠다 되시겠다 되시겟싸따따...

쿼리를 좀 살펴보면

SELECT A테이블칼럼, B테이블칼럼
FROM A테이블
INNER JOIN
B테이블
ON A테이블.B_id < > B테이블.B_id;

쿼리식은 동등 조인과 별 차이가 없다.
다만 ON 절의 등호가 같지않다 ( <> ) 로 바꼇다는거 정도...

동등조인에서 테스트했던 동일한 테이블로 테스트 해보겠다!
단지 그냥 부등호만 바꾸면 된다.


웁스! 결과를 보니 결과값이 2개씩 중복되어 나온다고??
흐흐.. 이건 중복된게 아니라 A테이블 ( 실제론 테스트2테이블 ) 의 칼럼이 2개 이므로
2개 모두에 해당되지 않은 칼럼은 2개가 나오고
어느 하나에 해당되는 ( 여기에선 4값 ) 칼럼은 하나만 나온다....
아...말로 표현이 힘드네 이거...




마지막으로 자연 조인~

자연조인 : 두 테이블에 같은 이름의 열이 있을 때만 동작한다.
결과는 동등 조인과 같은 결과가 나온다
일치하는 열 이름을 사용하는 동등조인이다.

이정도 되겠다.....
실제 프로젝트 에선 다른 테이블이라 할지라도 자연조인을 위해서든 아니든 간에
같은 칼럼의 이름을 많이 사용할 수 있으므로 자연조인이 더 편리하고,
꼭 조인을 해야하는데, 칼럼 이름이 좀 다르다 하면 동등조인을 쓰면 되겠다..

SELECT A테이블칼럼, B테이블 칼럼
FROM A테이블
NATURAL JOIN
B테이블;

자연조인 이므로 조건절이 필요가 없다..

결과는 동등조인과 같으므로 따로 테스트 해보진 않겠다....




으따 길다~ ...
조인 쿼리는 참... 테스트 하기도 애매하다... 여러 테이블을 만지기 골치아파~!!




반응형

댓글(4)

Designed by JB FACTORY