[Database] 전체 조인 (Full Join)


전체 조인 (Full Join)

  • 테이블1과 테이블2의 모든 투플을 반환한다.
  • 왼쪽 조인과 오른쪽 조인을 결합한 결과
  • 기본 형식
SELECT 속성_리스트
FROM 테이블1
FULL OUTER JOIN 테이블2
ON 테이블1. 속성 = 테이블2.속성
[ ORDER BY 속성 ];

  • MySQL은 전체조인 지원에 문제가 있으므로, 왼쪽 조인과 오른쪽 조인의 합집으로 해결
  • 유니온 (Union)
    • 두 질의문 결과의 합집합
( SELECT 속성리스트 FROM 테이블1 )
UNION
( SELECT 속성리스트 FROM 테이블2 )
  • Customer 테이블

  • Orders 테이블

  • 고객의 구매 현황을 조사하되, 구매하지 않은 고객은 구매 항목에 NULL로 표시하고, 구매한 고객은 구매한 상품코드를 조사하시오. 또한, 비회원( 계정이 없는 고객 )에 대하여 판매된 상품을 조사하시오 (전체 조인 사용)

(SELECT customer.name, orders.item
FROM customer
LEFT JOIN orders
ON customer.account=orders.customer)
UNION
(SELECT customer.name, orders.item
FROM customer
RIGHT JOIN orders
ON customer.account=orders.customer);
  • 결과


  • 전체 조인의 모든 속성을 확인하기 위한 질의
(SELECT *
FROM customer
LEFT JOIN orders
ON customer.account=orders.customer)
UNION
(SELECT *
FROM customer
RIGHT JOIN orders
ON customer.account=orders.customer);
  • 결과