개키우는개발자 : )

PostgreSQL EXCEPT 연산 본문

PostgreSQL/집합 연산자와 서브쿼리

PostgreSQL EXCEPT 연산

DOGvelopers 2019. 11. 10. 12:44
반응형

EXCEPT 연산 이란?

맨위에 SELECT문의 결과 집합에서 그 아래에 있는 SELECT문의 결과 집합을 제외한 결과를 반환합니다.

 

LEFT ONLY

집합1

 

기본문법

 

두개의 SELECT문 간 컬럼의 개수는 동일해야 하고 해당 순서의 열에는 서로 호환되는 데이터 유형 이어야 합니다.

SELECT
	COLUMN_1_1,
    COLUMN_1_2
FROM
	TABLE_NAME_1
EXCEPT
SELECT
	COLUMN_2_1,
    COLUMN_2_2
FROM
	TABLE_NAME_2
ORDER BY ... 

 

실습

 

- INVENTORY 테이블과 FILM테이블을 FILM_ID 컬럼 기준으로 INNER JOIN 합니다.

SELECT
	DISTINCT INVENTORY.FILM_ID,
	TITLE
FROM
	INVENTORY
INNER JOIN FILM ON
	FILM.FILM_ID = INVENTORY.FILM_ID
ORDER BY
	TITLE;

재고가 존재하는 영화 ID값이 조회 됩니다.

실습1

 

- 그렇다면 재고가 존재하지 않는 ID값을 조회 할때 EXCEPT를 사용합니다.

SELECT
	FILM_ID,
	TITLE
FROM
	FILM
EXCEPT
SELECT
	DISTINCT INVENTORY.FILM_ID,
	TITLE
FROM
	INVENTORY
INNER JOIN FILM ON
	FILM.FILM_ID = INVENTORY.FILM_ID
ORDER BY
	TITLE;

1. FILM 테이블의 존재하는 모든 데이터를 조회합니다. -> FILM_ID는 기본값 이기 때문에 중복되지 않습니다.

2. INVENTORY 테이블과 FILM테이블을 INNER JOIN하여 재고가 있는 값을 조회합니다.

3. 모든 데이터 - 재고 데이터 = 재고가 없는데이터 를 조회할 수 있습니다.

4. EXCEPT는 A - B = C 의 값을 조회합니다.

실습2

반응형
Comments