반응형
JOIN을 활용하여 테이블을 연결할 때,
ON과 WHERE의 사용에는 차이가 있다.
ON에 있는 조건절은 테이블이 조인되기 전에 실행된다
WHERE에 있는 조건절은 테이블이 조인된 후에 실행된다
같은 조건이라도 ON, WHERE 어디에 들어가 있는지에 따라 연산 순서가 달라진다
ON 에 조건절 넣기
- 테이블이 조인되기 전에 조건을 실행한다
- 유저 + 구매 ON 상품타입='유아용품'
- 유아용품만 구매이력에 포함되어 유저를 보여준다
- 유아용품을 샀는지 안샀는지 유저를 확인할 수 있다
SELECT o.*, p.category, p.name
FROM data.orders o LEFT JOIN data.products p
ON o.product_id = p.product_id
AND p.category = 'Furniture'
WHERE 에 조건절 넣기
- 테이블이 조인된 후에 조건을 실행한다
- 유저 + 구매 WHERE 상품타입='유아용품'
- 유아용품을 사지 않은 사람들은 모두 사라진다
- 유아용품을 샀던 사람만 남게된다
SELECT o.*, p.category, p.name
FROM data.orders o LEFT JOIN data.products p
ON o.product_id = p.product_id
WHERE p.category = 'Furniture'
JOIN을 할 때는 원하는 결과를 미리 생각한 후 명령어를 사용한다
반응형
'Skills > SQL' 카테고리의 다른 글
[SQL] 13. 날짜와 시간 다루기 (DATE) (0) | 2021.08.05 |
---|---|
[SQL] 12. 테이블 세로로 연결하기 (UNION) (0) | 2021.08.05 |
[SQL] 10. 데이터 합치기 (JOIN) (0) | 2021.08.05 |
[SQL] 09. 값을 요약하는 Aggregation 알아보기 (0) | 2021.08.04 |
[SQL] 08. 원하는 조건만 뽑아오기 (WHERE) - 2 (0) | 2021.07.29 |