본문 바로가기
데이터베이스/SQL

SQL 다중 행 서브쿼리

by ADELA_J 2024. 1. 10.

<다중 행 서브 쿼리>

- 특정 쿼리에서 검색한 여러 개의 값을 다른 쿼리에서 받아 검색하는 방법

 

 

▼ 직업이 SALESMAN인 사원들과 같은 월급을 받는 사원들의 이름과 월급 출력해보기

 

▷ 단일행 서브 쿼리처럼 한다면

: 왜 그러냐면!

직업이 SALESMAN인 사원이 한 명이 아니라 여러 명이기 때문에

서브 쿼리 값이 여러 개가 나오기 때문에

이퀄을 사용하면 에러가 난다.

 

▼ 이럴 때는 in 을 사용해서 해야한다.

 

▶ ▶ 이렇게 서브 쿼리에서 하나의 값이 아니라 여러 개의 값이 나오는 것을

다중 행 서브 쿼리라고 함.

 


 

<서브 쿼리의 종류>

종류  설명
단일 행 서브 쿼리 서브 쿼리에서 메인 쿼리를 위한 값이 하나(값)가 나오는 것
https://dev-adela.tistory.com/311
다중 행 서브 쿼리 서브 쿼리에서 메인 쿼리를 위한 값이 여러 개(값) 나오는 것
▶ (해당 포스팅)
다중 컬럼 서브 쿼리 서브 쿼리에서 메인 쿼리를 위한 여러 개의 컬럼이 나오는 것

 

<서브 쿼리에 따라서 사용하는 연산자도 다르다!!>

종류 연산자
단일 행 서브 쿼리 =, !=, >, <, <=, >=
다중 행 서브 쿼리 in, not in, >any, <any, >all, <all

▼ 라잌댓

 

- 다중 행 서브 쿼리 연산자에 대한 설명

in : 리스트의 값과 동일

not in : 리스트의 값과 동일하지 않다

>any : 리스트에서 가장 작은 값보다 크다

<any : 리스트에서 가장 큰 값보다 작다

>all : 리스트에서 가장 큰 값보다 크다

<all : 리스트에서 가장 작은 값보다 작다