paikpaik.log
로그인
paikpaik.log
로그인
MySQL, 데이터 조회(subquery)
paikpaik
·
2023년 7월 15일
팔로우
0
mysql
0
DB, SQL(MySQL)
목록 보기
6/9
subquery
SELECT with subquery 1
ID가 14인 임직원보다 생일이 빠른 임직원의 ID, 이름, 생일을 알고 싶다.
쿼리를 2번에 걸쳐서 작성하기 싫고 한번만 작성하고 싶다면 subquery를 사용하자!
SELECT with subquery 2
ID가 1인 임직원과 같은 부서 같은 성별인 임직원들의 ID와 이름과 직군을 알고 싶다.
SELECT with subquery 3
ID가 5인 임직원과 같은 프로젝트에 참여한 임직원들의 ID를 알고 싶다.
두번의 쿼리를 subquery로 합치기 전에 생각해야할 부분이 OR를 제거해주는 것!
IN 정리
테이블 명시 규칙
추가적으로 임직원들의 ID, 이름을 알고 싶다면??!?
가상의 테이블(DSTNCT_E)을 이용해서 FROM절에 subquery를 사용해도 된다!
SELECT with subquery 4
ID가 7혹은 12인 임직원이 참여한 프로젝트의 ID와 이름을 알고 싶다.
EXISTS 정리
EXISTS와 IN은 서로 바꿔쓸 수 있다
SELECT with subquery 5
2000년대생이 없는 부서의 ID와 이름을 알고 싶다.
NOT EXISTS 사용
NOT IN 사용
NOT EXISTS와 NOT IN또한 서로 바꿔쓸 수 있다
SELECT with subquery 6
리더보다 높은 연봉을 받는 부서원을 가진 리더의 ID와 이름과 연봉을 알고 싶다.
ANY 정리
각각의 부서의 최고연봉도 궁금하기 때문에 하나의 attribute를 둬서 조회하고 싶다면?
SELECT with subquery 7
ID가 13인 임직원과 한번도 같은 프로젝트에 참여하지 못한 임직원들의 ID, 이름, 직군을 알고 싶다.
ALL 정리
참고사항
성능 비교 : IN vs EXISTS
RDBMS의 종류와 버전에 따라 다르며 최근 버전은 많은 개선이 이루어져서 IN과 EXISTS의 성능 차이가 거의 없는 것으로 알고 있습니다.
출처 : 쉬운코드
paikpaik
매일 앞으로 나아가는 개발자
팔로우
이전 포스트
MySQL, 데이터 조회
다음 포스트
MySQL, NULL 주의 사항
0개의 댓글
댓글 작성