728x90
- on : join 전에 조건을 필터링한다.
- where : join 후에 조건을 필터링한다.
공통점
inner join 을 할 때는 차이가 없다.
차이점
outer join 시, on으로 조건을 적용시켜야 원하는 결과를 얻을 수 있다.
여기서 원하는 결과는 outer table에 null 값들을 포함한 행들이 join의 결과값으로 반환된 것을 말한다.
on 명령어
select m.id, m.username, t.id, t.name
from member m
left join team t
on m.team_id = t.id
AND t.name = "teamA";
where 명령어
select m.id, m.username, t.id, t.name
from member m
left join team t
on m.team_id = t.id
where t.name = "teamA";
결과
on 명령어를 사용한 left join은 member의 값들이 모두 반환되지만, where 명령어를 사용하면 결과가 team의 이름이 teamA인 줄만 반환된다. 이는 곧 where를 사용했을 때는 join 및 모든 조건이 끝나고 where로 추가 조건을 걸어준다는 것이다.
인용
728x90
'컴퓨터 사이언스 > Database' 카테고리의 다른 글
데이터베이스 설계 실습 - 스타벅스 홈페이지 (0) | 2023.06.25 |
---|---|
데이터베이스 설계 실습 - 맥도날드 키오스크 (0) | 2023.06.25 |
정규화 (0) | 2023.06.25 |
데이터베이스 설계 (0) | 2023.06.24 |
키의 종류 (0) | 2023.06.24 |