
SELECT column1, (SELECT column2
FROM tabe2
WHERE condition)
FROM table1
WHERE condition;
ex)
SELECT case_number 은평강도검거, (SELECT avg(case_number) FROM crime_status WHERE crime_type LIKE '강도' AND status_type LIKE '검거') 평균강도검거 FROM crime_status WHERE police_station LIKE '은평' AND crime_type LIKE '강도' AND status_type LIKE '검거';
SELECT a.column, b.column
FROM table a, (SELECT column1, column2 FROM table2) b
WHERE condition
ex)
SELECT c.police_station, c.crime_type, c.case_number FROM crime_status c, ( SELECT police_station, max(case_number) count FROM crime_status WHERE status_type LIKE '발생' GROUP BY police_station) m WHERE c.police_station = m.police_station AND c.case_number = m.count;활용예시
-하나의 열을 검색하는 서브쿼리
서브쿼리가 비교연산자와 사용되는 경우, 서브쿼리의 검색 결과는 한 개의 결과값을 가져야 한다.(두 개 이상인 경우 에러)
SELECT column_name
FROM table_name
WHERE column_name = (SELECT column_name
FROM table_name
WHERE condition)
ORDER BY column_name;
ex)
SELECT 상호, 가격 FROM oil_price WHERE 가격 > (SELECT host FROM snl_show WHERE id=1);활용예시
SELECT column_names
FROM table_name
WHERE column_name IN (SELECT column_name
FROM column_name
WHERE condition)
ORDER BY column_names;
ex)
SELECT host FROM snl_show WHERE host IN (SELECT name FROM celeb WHERE job_title LIKE '%영화배우%');활용예시
SELECT column_names
FROM table_name
WHERE EXISTS (SELECT column_name
FROM column_name
WHERE condition)
ORDER BY column_names;
ex)
SELECT name FROM police_station p WHERE EXISTS (SELECT police_station FROM crime_status c WHERE p.name=c.reference AND case_number > 2000);
SELECT column_names
FROM table_name
WHERE column_name = ANY (SELECT column_name
FROM column_name
WHERE condition)
ORDER BY column_names;
ex)
SELECT name FROM celeb WHERE name = ANY (SELECT host FROM snl_show);
SELECT column_name
FROM table_name
WHERE column_name = (SELECT column_name
FROM table_name
WHERE condition)
ORDER BY column_name;
ex)
SELECT name FROM celeb WHERE name = ALL (SELECT host FROM snl_show WHERE id=1);
SELECT column_names
FROM tablename a
WHERE (a.column, column2, ...) IN (SELECT b.column1, column2, ...)
FROM tablename b
WHERE a.columnname = b.columnname);
ex)
SELECT name, sex, agency FROM celeb WHERE (sex, agency) IN (SELECT sex, agency FROM celeb WHERE name='강동원');