[MySQL] SQL JOINS

hukim·2020년 10월 29일
0

MySQL

목록 보기
1/4


이미지 출처 : https://yoo-hyeok.tistory.com/98

1. LEFT JOIN

LEFT JOIN은 A와 B 테이블 중에서
A값의 전체와 A와 B의 KEY 값이 같은 결과를 리턴합니다.

                                                                A테이블

                                                                B테이블

A LEFT JOIN B는 A의 ID값과 B의 ID값이 같은 것이 연결되고
ID가 일치하지 않는다면 연결되는 값이 없을 것입니다.

SELECT a.id, a.name, a.age, b.school
FROM a LEFT JOIN b on a.id = b.id
ORDER BY a.id ASC

A의 ID가 3인 값은 B에서 3의 값이 2개이므로 2개가 연결되어 표시되고,
A의 ID가 4인 값은 B에 4인 값이 없으므로 연결되지 않고 NULL로 표시됩니다.

A의 값은 다 있고, 테이블의 KEY값이 일치하는 값을 연결해서 SELECT 했습니다.

2. LEFT JOIN (IS NULL)

순수한 A의 값 (B와 겹치지 않는)만 나타냅니다.

SELECT a.id, a.name, a.age, b.school
FROM a
LEFT JOIN b on a.id = b.id
WHERE b.id IS NULL
ORDER BY a.id ASC

3. INNER JOIN

ID값이 서로 중복되는 값만 나타낸다.

서로의 교집합만 표시합니다.

SELECT a.id, a.name, a.age, b.school
FROM a
INNER JOIN b
ON a.id = b.id

4. FULL OUTER JOIN

MySQL은 FULL OUTER JOIN이 없다.
그래서 LEFT JOIN과 RIGHT JOIN을 이용해 FULL OUTER JOIN을 사용할 수 있다.

SELECT a.id, a.name, a.age, b.school
FROM a
LEFT JOIN b on a.id = b.id
UNION
SELECT a.id, a.name, a.age, b.school
FROM a
RIGHT JOIN b on a.id = b.id
ORDER BY id ASC

0개의 댓글