본문 바로가기
GA 및 data/SQL

[SQL] 서브쿼리

by 오구송이 2024. 11. 26.

반응형

정의

  • 메인쿼리 안에 쿼리가 하나 더 있는 형태(SELECT문 안에 SELECT문이 또 있는 형태)
  • 메인쿼리가 실행되기 전에 먼저 실행되고, 그 결과를 메인 쿼리에서 사용함
    (쉽게 설명하면 '4*(1+3)'의 식에서 1+3을 먼저 계산하고 계산한 값을 4로 곱하는 것과 같음)
  • 서브쿼리는 칼럼명, WHERE 등 다양하게 사용 가능

형태 예시

  • SELECT 칼럼명, (SELECT 칼럼명 FROM 테이블명) FROM 테이블명 ;

예시

더보기

[쿼리문]

SELECT * FROM 학생 WHERE 점수 = (SELECT MAX(점수) FROM 학생);

728x90
  •  작동과정
    1. 서브쿼리 실행
      • 작동하는 쿼리문: SELECT MAX(점수) FROM 학생
      • 결과: 90점 반환
    2. 메인쿼리 실행
      • 작동하는 쿼리문: SELECT * FROM 학생 WHERE 점수 = 90;
      • 결과: 영희 반환

서브쿼리 종류

  • 비상관 서브쿼리
    • 의미: 메인 쿼리와 서브쿼리가 연관이 없음
    • 예시: SELECT 칼럼명, (SELECT 칼럼명 FROM 테이블A) FROM 테이블B ;
    • 테이블A의 SELECT문과 테이블B의 SELECT문이 연관되지 않음
  • 상관 서브쿼리
    • 의미: 메인 쿼리와 서브쿼리가 연관되어 있음
    • 예시: SELECT 칼럼명, (SELECT 칼럼명 FROM 테이블A WHERE 테이블A.ID = 테이블B.ID) FROM 테이블B ;
    • 서브쿼리 내 WHERE를 보면 메인쿼리의 테이블B와 서브쿼리의 테이블A가 같으면 조회하라는 조건이 있으므로 해당 케이스는 상관 서브쿼리를 의미
728x90
반응형
LIST

'GA 및 data > SQL' 카테고리의 다른 글

[SQL] UNION, UNION ALL  (4) 2024.11.28
[SQL] 그룹함수  (0) 2024.11.24
[SQL] IF, CASE, IFNULL 조회  (0) 2024.11.23
[SQL] 시간과 날짜 함수  (0) 2024.11.21
[SQL] 사칙연산 조회  (0) 2024.11.17

댓글