[SQL] MySQL JOIN
Updated:
전체
출처 - [MySQL] Join (Outer Join, Inner Join) 설명 및 예제
1. INNER JOIN
교집합, 공통 부분만 리턴
SELECT * FROM TABLE A
INNER JOIN TABLE B
ON A.KEY = B.KEY;
2. LEFT OUTER JOIN
LEFT OUTER JOIN = LEFT JOIN
왼쪽 + 공통부분
A와 B 테이블 중, A 값 + A와 B의 KEY값이 같은 결과를 리턴하는 것
SELECT * FROM TABLE A
LEFT OUTER JOIN TABLE B
ON A.KEY = B.KEY;
- 순수 A 만 구할 때 A - B
LEFT JOIN 후, B가 가진 테이블 COLUMN 항목이 NULL로 포함되어 있을 것 따라서 B의 KEY 값이 NULL인지 확인
SELECT * FROM TABLE A
LEFT OUTER JOIN TABLE B
ON A.KEY = B.KEY
WHERE B.KEY IS NULL;
3. RIGHT OUTER JOIN
RIGHT OUTER JOIN = RIGHT JOIN
오른쪽 + 공통부분
A와 B 테이블 중, B 값 + A와 B의 KEY값이 같은 결과를 리턴하는 것
SELECT * FROM TABLE A
RIGHT OUTER JOIN TABLE B
ON A.KEY = B.KEY;
- 순수 B 만 구할 때 B - A
RIGHT JOIN 후, A가 가진 테이블 COLUMN 항목이 NULL로 포함되어 있을 것 따라서 A의 KEY 값이 NULL인지 확인
SELECT * FROM TABLE A
RIGHT OUTER JOIN TABLE B
ON A.KEY = B.KEY
WHERE A.KEY IS NULL;
4. FULL OUTER JOIN
A와 B 전체를 SELECT
SELECT * FROM TABLE A
FULL OUTER JOIN TABLE B
ON A.KEY = B.KEY;
MySQL은 FULL OUTER JOIN 은 지원하지 않는다. 그래서 LEFT + RIGHT 해서 UNION 해서 사용해야 함
SELECT * FROM TABLE A LEFT JOIN TABLE B
UNION
SELECT * FROM TABLE A RIGHT JOIN TABLE B
- 교집합 제외
SELECT * FROM TABLE A LEFT JOIN TABLE B
UNION
SELECT * FROM TABLE A RIGHT JOIN TABLE B
WHERE A.KET IS NULL OR B.KEY IS NULL;
3중 JOIN
- inner join
- outer join
SELECT *
FROM TABLE A LEFT OUTER JOIN TABLE B
ON A.KEY = B.KEY
JOIN TABLE C
ON B.KEY = C.KEY;
Leave a comment