본문 바로가기
Database/SQL

서브쿼리 (Subquery)

by BAYABA 2021. 10. 26.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.
  3. 계속 업데이트 할 예정입니다.

목차

  1. 서브쿼리의 위치에 따른 명칭
  2. 스칼라 서브쿼리
  3. 인라인 뷰
  4. 서브쿼리

1. 서브쿼리의 위치에 따른 명칭

  1. SELECT 문에 있는 서브쿼리: 스칼라 서브쿼리
  2. FROM 절에 있는 서브쿼리: 인라인 뷰
  3. WHERE 절에 있는 서브쿼리: 서브쿼리

2. 스칼라 서브쿼리

  1. SELECT 문에서 사용하는 서브쿼리로 결과는 1행만 반환합니다.
  • 한 행이라 함은 가로 한 줄로 나타낼 수 있는 값을 의미합니다.
  • e.g. count(*) 쿼리가 그 예시가 될 수 있습니다.
SELECT 
  distinct t.id as `t.id`, 
  t.attr1 as `t.attr1`, 
  t.attr2 as `t.attr2`, 
  t.attr3 as `t.attr3`,
  t.created_at as `t.createdAt`, 
  (SELECT COUNT(*) FROM table1 t2 LEFT JOIN table2 t3 on t2.id = t3.tid WHERE t1.id = t2.id) as `t.cnt1`, 
  (SELECT COUNT(*) FROM table1 t2 LEFT JOIN table2 t3 on t2.id = t3.tid WHERE t1.id = t2.id) as `t.cnt2`
FROM
  table1 t1
WHERE 1=1 
ORDER BY t.id DESC;

3. 인라인 뷰


4. 서브쿼리


출처

  1. [SQL 기초] 스칼라 서브쿼리(Scala Subquery)](https://ttend.tistory.com/623)