FULL OUTER JOIN은 두 테이블 간의 일치하는 모든 데이터를 조회합니다. 그래서 FULL OUTER JOIN은 아주 방대한 양의 데이터를 반환할 수도 있습니다.
SELECT <칼럼> FROM <테이블 1> FULL OUTER JOIN <테이블 2> ON <테이블 1. 칼럼> = <테이블 2. 칼럼>
이전 포스팅과 마찬가지로 customers 테이블에 있는 id값과 transactions 테이블에 id값끼리 일치하는 데이터를 FULL OUTER JOIN 하여 조회해보겠습니다.
SELECT customers.id as customer_id, customers.name, transactions.id as transaction_id, transactions.transaction_date FROM customers FULL OUTER JOIN transactions ON customers.id = transactions.customer_id;
FULL OUTER JOIN이 아주 방대한 양의 데이터를 조회하는 이유는 두 테이블 간에 일치하는 데이터를 다른 테이블에 존재 여부를 고려하지 않고 모두 가져오기 때문입니다. 따라서 customers 테이블에는 일치하는 값이 있지만 transactions 테이블에는 일치하는 값이 없어도 모두 조회가 되고 반대의 상황도 모두 조회됩니다. 즉, 한 테이블의 값이 NULL이어도 조회가 됩니다.