하나의 쿼리문 안에 또 다른 하나의 쿼리문을 의미한다.
서브 쿼리가 사용 가능 한 곳은??
SELECT, FROM, WHERE, HAVING, ORDER BY
서브 쿼리문 예제
SELECT A1,A2,A3
FROM T1
WHERE C1 < ( SELECT B1,B2,B3
FROM T2
WHERE C2
) AS T3
ORDER BY C1,C2;
이런 식으로 서브 쿼리문을 작성한다.
서브쿼리를 사용할 때 주의할 점
서브쿼리는 괄호를 통해 사용
서브쿼리는 단일 행 or 복수 행 비교 연산자와 함께 사용 가능
ORDER BY를 사용하지 못함
SELECT A1,A2,
(
SELECT AVG(A2)
FROM T1
WHERE A1 >= ..
) AS T3
FROM T2
SELECT T1.A1, T1.A2, T2.B1, T2.B2
FROM T1, (
SELECT B1,B2
FROM T2
) AS T2
WHERE T1.A3 = T2.A3
SELECT *
FROM T1
WHERE A1 IN
( SELECT B1
FROM T2
WHERE B2 = '~~'
)
영어 그대로 제한이란 의미를 가진다.
SELECT 칼럼명
FROM 테이블명
LIMIT 출력수
가장 비싼 가격 2개만 보고 싶다는 예시
SELECT price
FROM restaurant
ORDER BY price DESC
LIMIT 2;
SELECT 칼럼명
FROM 테이블명
WHERE 조건
LIMIT 출력수
음식점에서 고기 종류 중에서 2개만 보고 싶다는 예시
SELECT *
FROM restaurant
WHERE food_type = 'meat'
LIMIT 2;