πŸ”™λ’€λ‘œκ°€κΈ°

SELECT m FROM Member m [INNER] JOIN m.team t
//νšŒμ›κ³Ό νŒ€ μ—”ν‹°ν‹°λ₯Ό μ‘°μΈν•˜λ©°, νšŒμ›μ΄ μ†ν•œ νŒ€μ΄ μžˆλŠ” κ²½μš°μ—λ§Œ 결과에 포함
SELECT m FROM Member m LEFT [OUTER] JOIN m.team t
/*νšŒμ›κ³Ό νŒ€ μ—”ν‹°ν‹°λ₯Ό μ‘°μΈν•˜λ©°, νšŒμ›μ΄ μ†ν•œ νŒ€μ΄ μ—†λŠ” κ²½μš°μ—λ„ 결과에 포함
μ΄λ•Œ νŒ€ μ •λ³΄λŠ” NULL둜 λ°˜ν™˜λœ */
select count(m) from Member m, Team t where m.username = t.name
/*νšŒμ› 엔티티와 νŒ€ μ—”ν‹°ν‹°μ˜ λͺ¨λ“  쑰합을 μƒμ„±ν•œ ν›„,
νšŒμ›μ˜ 이름이 νŒ€ 이름과 μΌμΉ˜ν•˜λŠ” 경우만 결과에 포함*/

쑰인 - ON 절

ONμ ˆμ„ ν™œμš©ν•œ 쑰인(JPA 2.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. 연관관계가 μ—†λŠ” μ—”ν‹°ν‹° μ™ΈλΆ€ 쑰인

예) νšŒμ›μ˜ 이름과 νŒ€μ˜ 이름이 같은 λŒ€μƒ μ™ΈλΆ€ 쑰인