jinsusong / CS-Study

CS
3 stars 5 forks source link

JOIN에서 ON과 WHERE의 차이를 설명해주세요. #85

Open jinsusong opened 1 year ago

yerimstar commented 1 year ago

https://velog.io/@crosstar1228/SQL-join할때-on-과-where의-차이

SW-H commented 1 year ago

[ON vs WHERE] ON: JOIN 을 하기 전 필터링을 한다 (=ON 조건으로 필터링이 된 레코들간 JOIN이 이뤄진다) -> join의 조건 WHERE : JOIN 을 한 후 필터링을 한다 (=JOIN을 한 결과에서 WHERE 조건절로 필터링이 이뤄진다)

Screenshot 2023-02-16 at 8 18 46 PM
dupyo commented 1 year ago

MYSQL USING VS ON 차이.

MySQL에서 JOIN 을 사용할때에 USING 이나 ON 을 사용한다.

SELECT 
    * 
FROM 
    employees e INNER JOIN salaries s USING(emp_no) 
WHERE 
    e.emp_no BETWEEN 100002 AND 100020 
ORDER BY e.emp_no;

employees 와 salaries 를 조인(JOIN)하는데 emp_no 를 키가 양쪽 테이블에 모두 있기 때문에 USING 을 사용할 수 있다. 하지만 만일 조인시에 컬럼 이름이 다를 경우에는 ON 을 사용한다. 물론, 컬럼 이름이 같은 것을 기반을 조인을 할때도 ON 을 상용해도 된다.

developer-sora commented 1 year ago

outer 조인 예시) https://myjamong.tistory.com/229

요약) where을 쓰면 데이터가 없는 결과는 출력을 안하고, on을 쓰면 데이터가 없는 결과도 출력함(조건을 처리하고 join하기 때문에)