SQL 기본 | DML : 데이터 조작 언어 | Subquery

하나의 SQL 문에, 또 다른 SQL 문을 넣을 수 있다. 그리고 WHERE 절 또는 HAVING 절에 다른 SQL 문을 삽입한 경우, subquery 구문이 넣을 수 있다. Subquery는 먼저 테이블의 결합에 사용된다. 그리고 때로는 subquery가 두 테이블을 조인하는 유일한 방법이다.

Subquery

Subquery은 다음과 같다.

SELECT "필드1" FROM "테이블1"
WHERE "필드2" [비교 연산자] (SELECT "필드1" FROM "테이블2" WHERE "조건");

비교 연산자는 =,>, <,> =, <= 등의 연산자가 있고, “LIKE"등과 같은 문자에 대한 연산자가 있다.

Subquery 예제

SQL의 결합에 대한 예제이다.

store_information 테이블

store_name sales txn_date
Los Angeles 1500 Jan-05-2018
San Diego 250 Jan-07-2018
Los Angeles 300 Jan-08-2018
Boston 700 Jan-08-2018

geography 테이블

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

subquery를 이용하여 West에 있는 가게의 매출을 모두 조사하는 경우, 다음 SQL로 사용할 수 있다.

SELECT SUM(sales) FROM store_information
WHERE store_name IN
(SELECT store_name FROM geography
WHERE region_name = 'West');

결과는 아래와 같다.

SUM(sales)
2050

이 예제에서는 두 개의 테이블을 직접 결합하지 않지만, West에 있는 가게의 매출을 모두 직접 계산할 수 있다. 그것은 먼저 어떤 가게가 West에 있는지 확인한다. 그리고, 그 가게의 매상을 계산하고 합계를 구한다.




최종 수정 : 2021-08-27