by 초초 [2020.04.27 11:21:58]
SELECT * FROM TAB_A A, TAB_B B, LEFT JOIN TAB_C C ON B.CD1 = C.CD1 LEFT JOIN TAB_D D ON B.CD2 = D.CD2 WHERE A.ID = B.ID AND B.DATE < '20200501'
위 쿼리에서
TAB_A와 TAB_B는 LEFT JOIN문을 사용하지 않고
WHERE 절에서 조인을 했는데
LEFT JOIN 사용하는것과 차이가 있나요..?
궁금합니다..
둘중 한가지로 통일하세요. 쿼리 해석하기 힘듭니다.
네 제가 작성한게 아니라 저런식으로 되어있는 쿼리를 봤는데 저렇게 작성해도
SELECT * FROM TAB_A A LEFT JOIN TAB_B B ON A.ID = B.ID LEFT JOIN TAB_C C ON B.CD1 = C.CD1 LEFT JOIN TAB_D D ON B.CD2 = D.CD2 WHERE B.DATE < '20200501'
이것과 같은건지 궁금해서요ㅠ
A 와 B 는 LEFT OUTER JOIN 이 아니라 INNER JOIN 이죠. 올려주신 쿼리는 그나마 간략해서 해석이 가능하지만 조금만 복잡해져도 해석이 어려워집니다.