[sql] LEFT JOIN을 활용한 데이터 정렬

데이터베이스에서 두 개의 테이블을 연결하여 데이터를 조회할 때, LEFT JOIN은 유용한 도구입니다. LEFT JOIN은 첫 번째 테이블의 모든 레코드와 두 번째 테이블에서 일치하는 레코드가 있는 경우 해당 레코드를 가져옵니다. 만약 두 번째 테이블에 일치하는 레코드가 없는 경우에도 첫 번째 테이블의 레코드는 결과에 포함됩니다.

LEFT JOIN의 구문

SELECT *
FROM  번째_테이블
LEFT JOIN  번째_테이블 ON  번째_테이블.매칭_컬럼 =  번째_테이블.매칭_컬럼;

위의 구문에서 LEFT JOIN 다음에 오는 두 번째_테이블은 첫 번째_테이블과 연결하고자 하는 테이블입니다. ON 다음에 오는 조건은 어떤 컬럼을 기준으로 두 테이블을 연결할 것인지를 명시합니다.

예제

예를 들어, employees 테이블과 departments 테이블이 있다고 가정해봅시다. employees 테이블은 모든 직원의 정보를 포함하고, departments 테이블은 각 부서의 정보를 포함합니다. 이때, 각 직원의 부서 정보를 함께 조회하고 싶다면 LEFT JOIN을 사용하여 다음과 같이 질의할 수 있습니다.

SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

위의 질의 결과로는 모든 직원의 이름과 해당하는 부서 이름이 함께 나타납니다.

LEFT JOIN은 첫 번째 테이블의 모든 레코드를 포함하면서 두 번째 테이블과의 연결을 시도합니다. 그 결과, 두 번째 테이블에 일치하는 레코드가 없더라도 첫 번째 테이블의 레코드가 결과에 포함되기 때문에 데이터 정렬에 유용하게 활용될 수 있습니다.