[sql] INTERSECT 연산자를 사용한 교차 테이블 조건 연산 및 결과 데이터 조회 방법

관계형 데이터베이스 시스템에서 교차 테이블 조건 연산은 중요한 작업입니다. 이를 위해 SQL INTERSECT 연산자를 사용할 수 있습니다. 이 연산자는 두 개 이상의 SELECT 문의 결과를 비교하여 공통된 행만을 반환하는 역할을 수행합니다. 이 글에서는 INTERSECT 연산자의 사용법과 결과 데이터를 조회하는 방법을 자세히 알아보겠습니다.

INTERSECT 연산자 사용법

INTERSECT 연산자는 주어진 SELECT 문의 결과를 비교하여 공통된 행만을 반환합니다. 각 SELECT 문은 동일한 열을 가져야하며, 결과는 열의 순서에 영향을 받습니다.

다음은 INTERSECT 연산자를 사용한 예제입니다:

SELECT column1, column2
FROM table1
INTERSECT
SELECT column1, column2
FROM table2;

위의 예제에서는 table1과 table2의 column1과 column2의 값이 일치하는 행만 반환됩니다.

결과 데이터 조회

INTERSECT 연산자를 사용하여 얻은 결과 데이터를 조회하려면 다음과 같이 SELECT 문을 사용합니다:

SELECT *
FROM (
    SELECT column1, column2
    FROM table1
    INTERSECT
    SELECT column1, column2
    FROM table2
) AS intersection;

위의 예제에서는 INTERSECT 연산자로 얻은 결과 데이터를 intersection이라는 임시 테이블에 저장한 후, 해당 테이블에서 모든 열을 선택하여 조회합니다.

예제

다음은 실제 예를 통해 INTERSECT 연산자를 사용한 교차 테이블 조건 연산과 결과 데이터 조회 방법을 보여줍니다.

-- 테이블 생성
CREATE TABLE table1 (
    id INT,
    name VARCHAR(50)
);

CREATE TABLE table2 (
    id INT,
    name VARCHAR(50)
);

-- 데이터 삽입
INSERT INTO table1 (id, name)
VALUES (1, 'John'), (2, 'Jane'), (3, 'Bob');

INSERT INTO table2 (id, name)
VALUES (2, 'Jane'), (3, 'Bob'), (4, 'Alice');

-- 교차 테이블 조건 연산
SELECT *
FROM (
    SELECT id, name
    FROM table1
    INTERSECT
    SELECT id, name
    FROM table2
) AS intersection;

위의 예제에서는 table1과 table2의 id와 name 열을 비교하여 공통된 행만을 출력합니다. 결과는 다음과 같이 나타납니다:

id | name
---|------
 2 | Jane
 3 | Bob

위의 예제에서는 table1과 table2의 공통된 항목인 “Jane”과 “Bob”만이 결과로 반환됩니다.

자세한 내용은 공식 SQL 문서를 참조하시기 바랍니다.

참고 자료