
4주차 강의 중, where - in 설명부분에서 2가지 질문이 있습니다.
강사님은
select u.user_id, u.name from users u
where u.user_id in (select o.user_id from orders o
where o.payment_method = 'kakaopay')
를 설명하셨는데,
join 쿼리에서는 항상 각 테이블간에 매칭시킬 컬럼?을 지정해주는데 (on u.user_id = o.user_id... 처럼)
where u.user_id in (select o.user_id from orders o
where o.payment_method = 'kakaopay')
에서는 join - on처럼 따로 지정해주지 않아도
Q1. oders 테이블의 user_id와 users 테이블의 user_id가 어떻게 알아서 매칭이 되는걸까요??
그래서 같은 결과값이 나오는 아래 코드를 짜봤습니다.
SELECT DISTINCT(u.user_id), u.name, o.payment_method from users u
inner join orders o on u.user_id = o.user_id
where o.payment_method = 'kakaopay'
값도, 카운팅도 같던데...
업무상, 또는 프로젝트 흐름상 동일한 결과를 얻으려고 할때,
Q2. where - in 구문과, inner join 구문중 어떤 상황에서 구분하여 쓰게 되나요?
