조인
- 내부 조인
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
'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 |