강의

멘토링

로드맵

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của rlaxogud940418
rlaxogud940418

câu hỏi đã được viết

Lập trình JPA tiêu chuẩn Java ORM - Cơ bản

Ghép

JPQL 관련 질문 드립니다!

Viết

·

277

0

14분 쯤에 SELECT m, t FROM MEMBER m LEFT JOIN TEAM t on m.username=t.name 은

SELECT m, t FROM MEMBER m LEFT JOIN TEAM t where m.username=t.name 과 다른 건가요??

다르다면 어떤 차이가 있는지 궁금합니다!

JPAjava

Quiz

71% người trả lời sai. Hãy thử ngay!

JPQL이 데이터베이스의 SQL과 가장 근본적으로 다른 점은 무엇일까요?

질의 대상

기본 문법의 유사성

데이터베이스 독립성 제공 여부

동적 쿼리 지원 방식

Câu trả lời 2

0

m.username = t.name의 조건을 언제 검사하느냐의 차이입니다.

첫번째 쿼리는 조인을 통해 결과 테이블을 찾을 때 해당 조건을 검사합니다.

그러니까 m.username = t.name 을 만족하지 않는 row에 대해서 오른쪽 테이블의 컬럼들은 null로 존재할겁니다. (left join이니까)

반면에 두번째 쿼리의 경우 일단 left join으로 결과 테이블을 가져옵니다.(이때까지는 우측이 null인 행도 존재할 것) 

그 후 거기에서 where 조건으로 m.username = t.name을 검사하니까 최종 결과에서는 m.username = t.name이 충족되는 녀석들만 남아있을 겁니다. (첫번째의 경우처럼 null로 존재하는 것이 아니라)

0

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

안녕하세요. 태형님^^

둘을 LEFT JOIN 기준으로(한쪽에 데이터가 없는 상태에서 조인) 실제 테스트 해보시면 다를 것을 바로 이해하실 수 있을거에요.

감사합니다.

Hình ảnh hồ sơ của rlaxogud940418
rlaxogud940418

câu hỏi đã được viết

Đặt câu hỏi