-
mysql left / right outer join 설명프로그래밍/DB 2024. 2. 20. 19:33728x90반응형
MySQL에서 LEFT OUTER JOIN과 RIGHT OUTER JOIN은 두 테이블 간의 관계를 기반으로 데이터를 결합할 때 사용되는 SQL 조인 유형입니다. 이들 각각은 조인되는 두 테이블 중 하나의 모든 레코드를 포함하도록 보장하며, 다른 테이블의 일치하는 레코드가 없는 경우 NULL 값을 포함합니다. 이러한 조인 유형을 통해 관계형 데이터베이스에서 두 테이블 간의 관계를 유연하게 표현할 수 있습니다.
LEFT OUTER JOIN
LEFT OUTER JOIN (또는 단순히 LEFT JOIN)은 기준 테이블(왼쪽 테이블)의 모든 레코드와 조인 테이블(오른쪽 테이블)의 일치하는 레코드를 반환합니다. 조인 테이블에 일치하는 레코드가 없는 경우, 결과는 기준 테이블의 레코드와 NULL 값을 포함합니다.
예시:
SELECT orders.order_id, customers.customer_name FROM orders LEFT JOIN customers ON orders.customer_id = customers.customer_id;
이 쿼리는 모든 주문과 각 주문에 대한 고객 이름을 반환합니다. 주문에 대한 고객 정보가 없는 경우, 고객 이름은 NULL로 반환됩니다.
RIGHT OUTER JOIN
RIGHT OUTER JOIN (또는 단순히 RIGHT JOIN)은 조인 테이블(오른쪽 테이블)의 모든 레코드와 기준 테이블(왼쪽 테이블)의 일치하는 레코드를 반환합니다. 기준 테이블에 일치하는 레코드가 없는 경우, 결과는 조인 테이블의 레코드와 NULL 값을 포함합니다.
예시:
SELECT orders.order_id, customers.customer_name FROM orders RIGHT JOIN customers ON orders.customer_id = customers.customer_id;
이 쿼리는 모든 고객과 각 고객에 대한 주문 ID를 반환합니다. 고객에 대한 주문 정보가 없는 경우, 주문 ID는 NULL로 반환됩니다
.
결론
- LEFT JOIN은 왼쪽 테이블(기준 테이블)의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 결합합니다.
- RIGHT JOIN은 오른쪽 테이블(조인 테이블)의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 결합합니다.
- 일치하는 레코드가 없는 경우, 해당 테이블의 컬럼 값은 NULL로 표시됩니다.
- 어느 쪽을 사용할지는 데이터를 조회하고자 하는 관점과 필요에 따라 결정됩니다.
728x90반응형'프로그래밍 > DB' 카테고리의 다른 글