Database/SQL
서브쿼리 (Subquery)
by BAYABA
2021. 10. 26.
- 개인 공부 목적으로 작성한 글입니다.
- 아래 출처를 참고하여 작성하였습니다.
- 계속 업데이트 할 예정입니다.
목차
- 서브쿼리의 위치에 따른 명칭
- 스칼라 서브쿼리
- 인라인 뷰
- 서브쿼리
1. 서브쿼리의 위치에 따른 명칭
- SELECT 문에 있는 서브쿼리: 스칼라 서브쿼리
- FROM 절에 있는 서브쿼리: 인라인 뷰
- WHERE 절에 있는 서브쿼리: 서브쿼리
2. 스칼라 서브쿼리
- 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. 서브쿼리
출처
- [SQL 기초] 스칼라 서브쿼리(Scala Subquery)](https://ttend.tistory.com/623)