최대 1 분 소요

  • 나이가 평균보다 많은 회원
    1
    2
    
    select m from Memeber m 
    where m.age > (select avg(m2.age) from Member 2)
    
  • 한 건이라도 주문한 고객
    1
    2
    
    select m from Member m
    where (select count(o) from Order o where m = 0.member) > 0
    

서브 쿼리 지원 함수

  • [NOT] EXISTS (subquery): 서브 쿼리에 결과가 존재하면 참
    • {ALL ANY SOME} (subquery)
    • ALL 모두 만족 하면 참
    • ANY, SOME : 같은 의미, 조건을 하나라도 만족하면 참
  • [NOT] IN (subquery) : 서브쿼리의 결과 중 하나라도 같은 것이 있으면 참

JPA 서브 쿼리 한계

  • JPA 는 WHERE, HAVING 절에서만 서브 쿼리 사용 가능
  • 하이버네이트에선 SELECT 에서도 사용 가능
  • FROM절의 서브쿼리는 현재 JPQL 에서 사용 불가능
    • 조인으로 풀 수 있으면 풀어서 해결

태그: ,

카테고리:

업데이트:

댓글남기기