[sql] JOIN 방식에 따른 데이터 조회 결과

INNER JOIN은 조인 조건에 맞는 두 테이블의 레코드만 반환합니다. 예를 들어, employees 테이블과 departments 테이블을 INNER JOIN하면 두 테이블에서 동일한 부서 번호를 가진 사원 레코드만 반환됩니다. 만약 부서 테이블에 부서 번호 5번에 해당하는 레코드가 없다면 해당 사원에 대한 결과도 반환되지 않습니다.

SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;

LEFT JOIN

LEFT JOIN은 왼쪽 테이블의 모든 레코드와 오른쪽 테이블에서 매칭되는 레코드를 반환합니다. 매칭되는 레코드가 없는 경우에도 왼쪽 테이블의 레코드는 반환됩니다. 예를 들어, employees 테이블을 왼쪽 테이블로 두고 departments 테이블을 오른쪽 테이블로 LEFT JOIN하면, 모든 사원 레코드를 반환하고 각 사원이 속한 부서 레코드가 없는 경우 NULL 값을 반환합니다.

SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;

RIGHT JOIN

RIGHT JOIN은 LEFT JOIN과 반대로 오른쪽 테이블의 모든 레코드와 왼쪽 테이블에서 매칭되는 레코드를 반환합니다. 매칭되는 레코드가 없는 경우에도 오른쪽 테이블의 레코드는 반환됩니다.

SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;

이러한 JOIN 방식을 이해하고 적절히 활용하면 데이터베이스에서 원하는 결과를 보다 쉽게 얻을 수 있습니다.

MySQL 공식 문서에서 JOIN에 대한 자세한 정보를 확인할 수 있습니다.