Seongho Jang
서브쿼리 본문
서브쿼리: 하나의 쿼리 내에 포함된 또 다른 쿼리
서브쿼리는 쿼리 간의 hierarchy 분류를 위해 반드시 ( ) 로 묶어주어야 한다.
서브쿼리가 외부 쿼리(=메인 쿼리)보다 먼저 실행되며,
외부 쿼리의 컬럼명을 서브쿼리에 사용이 가능하지만, 서브쿼리의 컬럼명은 외부 쿼리에서 사용이 불가능하다.
서브쿼리의 분류
서브쿼리는 쿼리 내의 위치에 따라,
SELECT절에 위치한 스칼라 서브쿼리,
FROM절에 위치한 인라인 뷰,
WHERE절에 위치한 중첩 서브쿼리로 분류된다.
1) 스칼라 서브쿼리
SELECT 문에서 사용되며, 하나의 결과값만을 리턴하기 때문에 스칼라 서브쿼리라는 이름이 붙었다.
SELECT D.DEPTNO,
(SELECT MIN(EMPNO) FROM EMP WHERE DEPTNO = D.DEPTNO) as EMPNO
FROM DEPT D
ORDER BY D.DEPTNO
2) 인라인 뷰
FROM 절에 위치한 서브쿼리로, 외부 쿼리에서 참조할 테이블을 생성한다.
인라인 뷰의 경우 반드시 alias를 지정해주어야 한다.
SELECT EX1.name,EX1.salary
FROM (
SELECT *
FROM employee AS Ii
WHERE Ii.office_worker='사원'
) EX1;
3) 중첩 서브쿼리
WHERE 절에 위치한 서브쿼리로, 비교 조건을 설정할 수 있다.
스칼라 서브쿼리와는 달리 다중행 서브쿼리로,
서브쿼리 내에 IN, ALL, ANY 등의 비교 연산자가 사용 가능함
select name, height
from userTbl
where height = any(select height from userTbl where addr in ('경남'));
select *
from city
where population > all( select population from city where district = 'New York' );
[MYSQL] 📚 서브쿼리 개념 & 문법 💯 정리
서브쿼리(Subquery) 서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELETE 문을 의미한다. 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라
inpa.tistory.com
'SQL' 카테고리의 다른 글
Leetcode 1280. Students and Examinations (0) | 2024.03.02 |
---|---|
CASE WHEN의 활용 (Salaries Difference, 가구 판매의 비중이 높았던 날 찾기) (0) | 2024.01.22 |
[Hackerrrank] The PADS (0) | 2024.01.17 |
SQL 쿼리 작성 순서 (0) | 2024.01.17 |
SQL 순위 매기기 : (0) | 2023.03.10 |