-
join할때 on 과 where의 차이Stack/Sql 2023. 2. 15. 04:42
1. ON
JOIN에 우선 이름으로 테이블을 연결한 뒤
AND t2.몸무게 = 50 이라는 조건을 준 상황이다.
ON은 JOIN이 되기 전에 실행되므로
간단하게 보면 1번과 3번의 LEFT JOIN이 된 것처럼 보이는 것이다.
나머지 B, C의 몸무게는 NULL값을 가진다.
2. WHERE
WHERE은 JOIN이 실행된 후 적용된다.
우선 가운데 회색 테이블은 이름을 기준으로 t1과 t2를 JOIN한 것이다.
여기서 WHERE 조건으로 t2의 몸무게가 50인 데이터만 필터링 하면
맨 오른쪽의 하나의 행만 있는 테이블이 보여지게 된다.
<요약>on : join 전에 조건을 필터링
where : join 후에 조건을 필터링inner join 하면 둘다 차이 없음
outer join 시 on으로 해야 원하는 결과를 얻을 수 있음(outer table에 null값 포함하여 행들이 다 살아있는 상태)
<참고>
'Stack > Sql' 카테고리의 다른 글
IntelliJ에서 DB Table Column삭제 방법 (0) 2023.01.10 링크)동적 Native SQL 생성 어떻게 할까 (0) 2023.01.08 링크) Spring Boot에서 GraphQL 활용법 (0) 2023.01.02 Back-end/Spring[Spring boot + MongoDB + MySQL] DB 2개 연동하기 (0) 2022.12.22 DB에서 기본키 값(id)를 최우선으로 검색해야 되는 이유 (0) 2022.12.21