[sql] INTERSECT 연산자를 사용한 두 개 이상의 테이블 조건 검색 방법

SQL에서 INTERSECT 연산자는 두 개 이상의 SELECT 문의 결과에서 공통으로 나타나는 행을 반환하는 데 사용됩니다. INTERSECT 연산자는 집합 연산자 중 하나로, 주어진 조건에 따라 공통된 결과만을 반환하는 데 유용하게 사용될 수 있습니다.

문법

SELECT column1, column2, ...
FROM table1
INTERSECT
SELECT column1, column2, ...
FROM table2
[INTERSECT
SELECT column1, column2, ...
FROM table3
...]

위의 문법에서 각각의 SELECT 문은 공통된 결과를 얻기 위해 동일한 열을 선택해야 합니다. INTERSECT 연산자를 사용하려는 모든 SELECT 문은 동일한 열 이름과 순서를 가지고 있어야 합니다.

예제

예를 들어, “employees”와 “departments”라는 두 개의 테이블이 있다고 가정해 보겠습니다. “employees” 테이블에는 직원의 이름과 부서 ID가, “departments” 테이블에는 부서 ID와 부서 이름이 저장되어 있습니다. 이 두 테이블에서 동일한 부서 ID를 가진 직원들을 찾아보려면 다음과 같이 INTERSECT 연산자를 사용할 수 있습니다.

SELECT employees.name, departments.name
FROM employees
JOIN departments ON employees.dept_id = departments.dept_id
INTERSECT
SELECT employees.name, departments.name
FROM employees
JOIN departments ON employees.dept_id = departments.dept_id
WHERE departments.name = 'Sales'

위의 예제에서 첫 번째 SELECT 문은 모든 부서 ID에 대한 직원들을 반환합니다. 두 번째 SELECT 문은 “Sales” 부서에 속한 직원들을 반환합니다. INTERSECT 연산자를 사용하면 이 두 결과에서 공통된 직원들, 즉 “Sales” 부서에 속한 직원들을 반환할 수 있습니다.

결론

INTERSECT 연산자를 사용하면 두 개 이상의 테이블에서 공통된 결과를 검색하는 간편한 방법을 제공합니다. INTERSECT 연산자는 SQL의 집합 연산자 중 하나로, 동일한 열과 값을 가진 결과를 찾을 때 유용하게 사용될 수 있습니다.