DATABASE-Sub Query
Sub Query
sub query는 query 문 안에 있는 query를 의미합니다.
SELECT절, FROM절, WHERE 등에 사용이 가능합니다.
Example
- 전체 나라수, 전체 도시수, 전체 언어수를 출력 ( SELECT 절에 사용 ) - SUB QUERY 사용시 JOIN TABLE 크기를 줄일 수 있다- 1 
 2
 3
 4
 5- SELECT 
 (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 DUAL
- 800만 이상되는 도시의 국가코드, 이름, 도시인구수를 출력 ( 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
 5- SELECT code, name, HeadOfState 
 FROM country
 WHERE code IN (
 SELECT DISTINCT(countrycode) FROM city WHERE population > 8000000
 )