본문 바로가기
프로그래머스/SQL

오라클 JOIN 정리

by 몰라닉네임 2023. 10. 19.

한 번쯤은 정리하는게 도움이 될 거 같아 정리함

 

이 그림

 

Table A

ID NAME
1 김나나
2 박사랑
3 이키키

Table B

ID GENDER
1
2
4
5

 

INNER JOIN

교집합

SELECT A.ID, A.NAME, B.GENDER
FROM A INNER JOIN B
ON A.ID = B.ID;

 

ID NAME GENDER
1 김나나
2 박사랑

LEFT JOIN

SELECT A.ID, A.NAME, B.GENDER
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;

 

ID NAME GENDER
1 김나나
2 박사랑
3 이키키 NULL

RIGHT JOIN

SELECT A.ID, A.NAME, B.GENDER
FROM A RIGHT OUTER JOIN B
ON A.ID = B.ID;

 

ID NAME GENDER
1 김나나
2 박사랑
4 NULL
5 NULL

OUTER JOIN

SELECT A.ID, A.NAME, B.GENDER
FROM A FULL OUTER JOIN B
ON A.ID = B.ID

FULL OUER JOIN -> JOIN 써도 된다.

 

ID  NAME GENDER
1 김나나
2 박사랑
3 이키키 NULL
4 NULL
5 NULL

 


A-B

LEFR JOIN 값 중 WHERE 조건으로 NULL 인 값 조회 

SELECT A.ID, A.NAME, B.GENDER
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID;
WHERE B.ID IS NULL

 

 

ID NAME GENDER
이키키 NULL

 

B-A

SELECT A.ID, A.NAME, B.GENDER
FROM A RIGHT OUTER JOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL
ID NAME GENDER
4 NULL
5 NULL

 

교집합 제외

SELECT A.ID, A.NAME, B.GENDER
FROM A FULL OUTER JOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL

      OR

ID NAME GENDER
3 이키키 NULL
4 NULL
5 NULL

 

 

틀린 게 있다면 편하게 댓글로 알려주시면 감사하겠습니다.