[sql] JOIN 결과에 조건절 추가하기

데이터베이스에서 JOIN 연산을 사용하면 두 개 이상의 테이블을 연결하여 필요한 데이터를 효율적으로 조회할 수 있습니다. 그러나 종종 JOIN된 결과에 추가적인 조건을 적용해야 하는 상황이 있을 수 있습니다.

INNER JOIN과 WHERE 조건절

INNER JOIN을 사용하여 두 테이블을 연결하고, 추가적인 조건을 적용하려면 WHERE 절을 사용합니다.

예를 들어, employeesdepartments 테이블을 조인하고, departments 테이블의 department_name이 “Sales”인 경우에 해당하는 직원들을 조회하고 싶다면 아래와 같이 SQL을 작성할 수 있습니다.

SELECT *
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id
WHERE departments.department_name = 'Sales';

LEFT JOIN과 추가 조건

LEFT JOIN을 사용하여 모든 왼쪽 테이블의 레코드와 일치하는 오른쪽 테이블의 레코드를 결합할 때, 추가적인 조건을 적용하려면 WHERE 절과 IS NULL을 함께 사용합니다.

아래 예시는 employees 테이블과 departments 테이블을 LEFT JOIN하고, departments 테이블의 department_name이 NULL이거나 “Sales”가 아닌 경우에 해당하는 직원들을 조회합니다.

SELECT *
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id
WHERE departments.department_name IS NULL OR departments.department_name <> 'Sales';

위의 예시에서, IS NULL 조건은 오른쪽 테이블의 레코드와 매치되지 않는 경우를 필터링하고, <> 'Sales' 조건은 “Sales” 부서가 아닌 경우를 필터링합니다.

조인된 결과에 추가 조건을 적용하는 방법은 각각의 상황에 따라 달라질 수 있으므로, 실제 사용하는 데이터와 요구사항에 맞춰 적절한 조인 및 조건절을 선택하는 것이 중요합니다.

이상으로 SQL JOIN 결과에 조건절 추가하기에 대해 간단히 알아보았습니다.