서브쿼리는 SELECT 말고 FROM에도 쓸 수 있다
페이지 정보

영삼이
본문
✅ 서브쿼리는 SELECT 말고 FROM에도 쓸 수 있다
가공된 결과를 테이블처럼 활용하라
✅ 기본적인 서브쿼리 (SELECT 안에)
SELECT name, (
SELECT COUNT(*) FROM orders WHERE user_id = users.id
) AS order_count
FROM users;
-
사용자마다 주문 수를 구할 수 있음
-
하지만 사용자 수 × 주문 수 만큼 반복 실행돼서 비효율적
✅ FROM 절에 서브쿼리 사용 (인라인 뷰)
SELECT u.name, o.order_count
FROM users u
JOIN (
SELECT user_id, COUNT(*) AS order_count
FROM orders
GROUP BY user_id
) o ON u.id = o.user_id;
-
orders
테이블을 먼저 가공해서 임시 테이블처럼 사용 -
조인으로 매칭만 하면 되니 훨씬 빠름
실전 활용 예
-
집계된 데이터를 조인할 때
-
랭킹, 순위, 요약 통계를 연결할 때
-
GROUP BY나 JOIN 전에 먼저 정제할 때
✔️ 서브쿼리는 SELECT 안에만 쓰는 게 아니다.
FROM 안에 쓰면 성능과 가독성을 모두 잡을 수 있다.
복잡한 쿼리는 작게 나눠서 조합하라.
- 이전글DISTINCT는 만능이 아니다 — GROUP BY로 대체하는 게 더 유리할 때가 있다 25.03.28
- 다음글✅ 인덱스는 조건 순서에 따라 무용지물이 될 수 있다 25.03.28
댓글목록
등록된 댓글이 없습니다.