DATABASE-Sub Query
Sub Query
sub query는 query 문 안에 있는 query를 의미합니다.
SELECT절, FROM절, WHERE 등에 사용이 가능합니다.
Example
전체 나라수, 전체 도시수, 전체 언어수를 출력 ( SELECT 절에 사용 )
SUB QUERY 사용시 JOIN TABLE 크기를 줄일 수 있다
1
2
3
4
5SELECT
(SELECT count(name) FROM city) AS total_city,
(SELECT count(name) FROM country) AS total_country,
(SELECT count(DISTINCT(Language)) FROM countrylanguage) AS total_language
FROM DUAL800만 이상되는 도시의 국가코드, 이름, 도시인구수를 출력 ( FROM 절에 사용 )
SUB QUERY를 안 쓸때
- city table row : 4079
- coutnry table row : 239
- JOIN TABLE : 4079 * 239
1
2
3
4
5
6
7
8SELECT *
FROM
city
JOIN
(SELECT code, name
FROM country) AS country
ON city.countrycode = country.code
HAVING city.population > 8000000;
SUB QUERY를 쓸 때
- city table row : 10
- coutnry table row : 239
- JOIN TABLE : 10 * 239
1
2
3
4
5
6
7
8
9SELECT *
FROM
(SELECT countrycode, name, population
FROM city
WHERE population > 8000000) AS city
JOIN
(SELECT code, name
FROM country) AS country
ON city.countrycode = country.code;
800만 이상 도시의 국가코드, 국가이름, 대통령이름을 출력( WHERE 절에 사용 )
1
2
3
4
5SELECT code, name, HeadOfState
FROM country
WHERE code IN (
SELECT DISTINCT(countrycode) FROM city WHERE population > 8000000
)