인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

GPK님의 프로필 이미지
GPK

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPQL 쿼리 문의

작성

·

135

0

강좌 너무 잘 듣고 있습니다.
JPQL 서브쿼리 강좌를 듣고 있는 중인데, 예제로 드신 query들을 보다가 궁금증이 생겨 문의드립니다.

아래 2가지 쿼리는 결과적으로 같은 결과를 주게 되는데

String query1 = "select m from Member m join m.team t where t.name = 'TeamA'";

String query2 = "select m from Member m where exists (select t from m.team t where t.name = 'TeamA')";

2가지 쿼리는 성능상 어떤 차이가 있나요?

그리고 검색시 2가지 중 실무에서 더 권장하는 방식이 있을까요? 여러가지 상황에 다를 것 같긴 합니다만...

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요 JPark님^^

사실 2번 방법은 exists 예시를 위한 내용이고 가급적이면 1번을 사용하시는게 더 나은 선택입니다^^

1번이 일반적인 DB들이 더 최적화 하기 좋습니다.

2번이 왜 안좋은지는 correlated subquery로 검색해보시면 원하는 결과를 얻으실 수 있을꺼에요^^

감사합니다.

GPK님의 프로필 이미지
GPK

작성한 질문수

질문하기