JPA/JPQL

[JPA] 조인

Boradoris 2023. 3. 10. 15:39

조인

  • 내부 조인
    SELECT m FROM Member m [INNER] JOIN m.team t

  • 외부 조인
    SELECT m FROM Member m LEFT [OUTER] JOIN m.team t
  • 세타 조인
    SELECT count(m) FROM Member m, Team t where m.username = t.name

 

 

조인 - ON절

  • ON절을 활용한 조인 (JPA 2.1부터 지원)
    • 1. 조인 대상 필터링
    • 2. 연관 관계없는 엔티티 외부 조인 (하이버네이트 5.1부터)

 

1. 조인 대상 필터링

  • 예) 회원과 팀을 조인하면서, 팀 이름이 A인 팀만 조인

 

JPQL:
SELECT m, t 

FROM Member m 

LEFT JOIN m.team t 

ON t.name = 'A' 


SQL:
SELECT m.*, t.*

FROM Member m 

LEFT JOIN Team t 

ON m.TEAM_ID=t.id 

AND t.name='A' 

 

 

2. 연관 관계없는 엔티티 외부 조인

  • 예) 회원의 이름과 팀의 이름이 같은 대상 외부 조인

 

JPQL:
SELECT m, t 

FROM Member m

LEFT JOIN Team t

ON m.username = t.name


SQL:
SELECT m.*, t.*

FROM Member m 

LEFT JOIN Team t 

ON m.username = t.name

 


출처 : https://www.inflearn.com/course/ORM-JPA-Basic

'JPA > JPQL' 카테고리의 다른 글

[JPA] JPQL 타입 표현과 기타식  (0) 2023.03.10
[JPA] 서브 쿼리  (0) 2023.03.10
[JPA] 페이징  (0) 2023.03.10
[JPA] 프로젝션 (SELECT)  (0) 2023.03.10
[JPA] JPQL 기본 문법과 쿼리 API  (0) 2023.03.10