본문으로 건너뛰기
실습하기

WHERE 절의 서브쿼리

서브쿼리는 WHERE 절에서 자주 사용되며, 다른 쿼리의 결과를 기준으로 현재 쿼리의 결과를 동적으로 필터링할 수 있습니다.


서브쿼리의 장점

WHERE 절에 서브쿼리를 사용하면 다음과 같은 이점이 있습니다.

  • 다른 쿼리 결과를 기반으로 동적으로 값 필터링
  • 조건을 하드코딩하지 않아도 됨
  • 복잡한 Join을 줄이고 간결한 쿼리 작성 가능

예시: 두 개 이상 강좌를 선택한 사용자

아래 쿼리는 user_courses 테이블에서 두 개 이상의 강좌를 선택한 사용자를 찾아 users 테이블에서 이름을 반환합니다.

WHERE 절의 서브쿼리 예시
SELECT name
FROM users
WHERE user_id IN (
SELECT user_id
FROM user_courses
GROUP BY user_id
HAVING COUNT(*) > 1
);

결과

name
Sofia
Aisha
Liam

이 쿼리는 서브쿼리에서 두 개 이상의 강좌를 수강한 사용자 ID를 먼저 찾고, 그 결과를 이용해 users 테이블에서 해당 사용자의 이름을 가져옵니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!