JOIN
JOIN
은 두 개 이상의 테이블을 결합하여 관련된 데이터를 조회할 때 사용되는 SQL 구문입니다. 여러 테이블에서 필요한 데이터를 한 번에 가져오고 싶을 때, 공통된 키를 기준으로 테이블을 결합하여 다양한 결과를 얻을 수 있습니다.
이번 장에서는 INNER JOIN
, LEFT JOIN
2개만 실습을 해보고 각 JOIN의 특징을 알아보겠습니다.
1.1 INNER JOIN
INNER JOIN
은 두 테이블에서 공통된 열(키 값)이 일치하는 데이터만 반환합니다. 테이블 간 일치하는 데이터가 없으면 결과에 포함되지 않습니다.
SELECT 주문.주문ID, 고객.이름, 주문.주문날짜
FROM 주문
INNER JOIN 고객 ON 주문.고객ID = 고객.고객ID;
SELECT 주문.주문ID, 고객.이름, 주문.주문날짜
FROM 주문
INNER JOIN 고객 ON 주문.고객ID = 고객.고객ID;
이 쿼리는 주문
테이블과 고객
테이블에서 공통된 고객ID
를 기준으로 결합하여, 고객의 이름과 주문 날짜를 조회합니다.
1.2 LEFT JOIN
LEFT JOIN
은 왼쪽(기준) 테이블의 모든 행을 반환하고, 오른쪽(조인된) 테이블에서 일치하는 데이터가 없으면 NULL
값을 반환합니다. 일치하는 데이터가 없는 경우에도 왼쪽 테이블의 모든 데이터가 반환됩니다.
SELECT 고객.이름, 주문.주문ID
FROM 고객
LEFT JOIN 주문 ON 고객.고객ID = 주문.고객ID;
SELECT 고객.이름, 주문.주문ID
FROM 고객
LEFT JOIN 주문 ON 고객.고객ID = 주문.고객ID;
이 쿼리는 고객
테이블의 모든 고객을 반환하며, 해당 고객이 주문한 내역이 있으면 함께 조회되고, 주문 내역이 없는 고객의 경우 NULL
로 표시됩니다.