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