https://blog.leocat.kr/notes/2017/07/28/sql-join-on-vs-where
Query DSL 공부하다가 헷갈려서 헷갈린 김에 정리 해본다.
위 출처에 이해하기 쉽게 되어있다.
정리하자면
ON = "조인할 때의 조건"
WHERE = "테이블에서 어떤 ROW를 선택할까?"
예) left join == outer left join
아래 쿼리를 작성하면 어떤 결과가 나올까?
1.
select *
from 과일상자
left join 과일
on 과일상자.id = 과일.과일상자id
where 과일 = 사과;
2.
select *
from 과일상자
left join 과일
on 과일상자.id = 과일.id and 과일=사과;
<1번 쿼리 수행 과정>
과일상자를 기준으로 과일을 조인한다. 만약 과일상자id 를 참조하는 과일이 없을 경우 과일의 모든 필드를 Null로 한다.
<2번 쿼리 수행 과정>
'SQL' 카테고리의 다른 글
[MYSQL] 프로그래머스 sql 쿼리 문제 후기 및 접근법 (0) | 2020.07.30 |
---|
댓글