작성
·
208
답변 2
0
m.username = t.name의 조건을 언제 검사하느냐의 차이입니다.
첫번째 쿼리는 조인을 통해 결과 테이블을 찾을 때 해당 조건을 검사합니다.
그러니까 m.username = t.name 을 만족하지 않는 row에 대해서 오른쪽 테이블의 컬럼들은 null로 존재할겁니다. (left join이니까)
반면에 두번째 쿼리의 경우 일단 left join으로 결과 테이블을 가져옵니다.(이때까지는 우측이 null인 행도 존재할 것)
그 후 거기에서 where 조건으로 m.username = t.name을 검사하니까 최종 결과에서는 m.username = t.name이 충족되는 녀석들만 남아있을 겁니다. (첫번째의 경우처럼 null로 존재하는 것이 아니라)
0
안녕하세요. 태형님^^
둘을 LEFT JOIN 기준으로(한쪽에 데이터가 없는 상태에서 조인) 실제 테스트 해보시면 다를 것을 바로 이해하실 수 있을거에요.
감사합니다.