두 개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른영역을 모두 포함하는 조인방식
출처: zero-base 강의교안
SELECT column1, column2, ...
FROM tableA
FULL OUTER JOIN tableB
on tableA.column = tableB.column
WHERE condition;
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;
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;
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;