원본 글
헷갈리는 SQL JOIN문 정리합니다!
DB를 사용하다보면 join을 사용해야 할 경우가 많은데 오랫동안 사용하지 않으면 또 까먹기 마련입니다.
코딩 테스트에도 자주 등장하는 SQL JOIN에 대해서 이번 기회에 정리해 봅니다!
이 글은 MySQL DB를 기준으로 작성했습니다.
SQL join 문이 가장 잘 정리 되어 있는 그림인 것 같습니다.
join: 동일한 column을 기준으로 테이블을 하나로 합칩니다.
left(right) join 과 left(right) outer join의 차이점
>>> 실행 결과는 동일 합니다.
left join의 경우 동일한 column으로 하나로 합쳐지고 left 쪽(A)의 모든 데이터를 포함하고 B의 데이터는 null로 표시 됩니다.
Show All
Search
Show All
Search
left join 결과
Show All
Search
SELECT * from A left join B on A.id = B.id;
SQL
복사
id를 기준으로 A 테이블의 손상 없이 두 테이블을 합칩니다.
B 테이블에 존재하지 않는 id의 데이터는 null로 표시됩니다.
이 null 값을 where 조건을 사용하면 A 혹은 B만 가지고 있는 데이터를 가져올 수 있습니다.
A와 B 테이블 공통 데이터 가져오기 (inner join과 동일)
SELECT * from A left outer join B on A.id = B.id where B.id is not null;
SQL
복사
위 코드의 결과는 inner join을 사용한 것과 동일 합니다.
SELECT * from A inner join B on A.id = B.id;
SQL
복사
A 테이블에만 있는 데이터만 가져오기
SELECT * from A left outer join B on A.id = B.id where B.id is null;
SQL
복사