SQL 기초12 - 06 - FULL OUTER JOIN_(Chapter 09. JOIN)

HA_·2023년 11월 28일
0

Chapter 09-6. FULL OUTER JOIN

1. FULL OUTER JOIN

두 개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른영역을 모두 포함하는 조인방식

출처: zero-base 강의교안

2. FULL OUTER JOIN 문법 - SQL

SELECT column1, column2, ...
FROM tableA
FULL OUTER JOIN tableB
on tableA.column = tableB.column
WHERE condition;

3. FULL OUTER JOIN 예제 - SQL

snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 FULL OUTER JOIN

SELECT  celeb.id, celeb.name, snl_show.id, snl_show.host
FROM celeb
FULL OUTER JOIN snl_show
ON celeb.name = snl_show.host;


4. FULL OUTER JOIN 문법 - MySQL

MySQL 에서는 FULL JOIN 을 지원하지 않으므로 다음의 쿼리로 같은 결과를 만들 수 있다.

SELECT column1, column2, ...
FROM tableA
LEFT JOIN tableB ON tableA.column = tableB.column
UNION
SELECT column1, column2, ...
FROM tableA
RIGHT JOIN tableB ON tableA.column = tableB.column
WHERE condition;

5. FULL OUTER JOIN 예제 - MySQL

snl_show 에 호스트로 출연한 celeb 을 기준으로 celeb 테이블과 snl_show 테이블을 FULL OUTER JOIN

SELECT  celeb.id, celeb.name, snl_show.id, snl_show.host
FROM celeb
LEFT JOIN snl_show
ON celeb.name = snl_show.host
UNION
SELECT  celeb.id, celeb.name, snl_show.id, snl_show.host
FROM celeb
RIGHT JOIN snl_show
ON celeb.name = snl_show.host;

  • MySQL에서는 FULL OUTER JOIN을 지원하지 않기 때문에 LEFT JOIN과 RIGHT JOIN을 해서 UNION함으로써 중복을 제거한 후 합쳐준다!

0개의 댓글