mysql join 질문드립니다.
본문
FROM
fm_cart_option cart_opt
left join fm_cart cart on cart.cart_seq = cart_opt.cart_seq
,fm_goods goods
,fm_goods_option goods_opt
left join fm_goods_option_item i on goods_opt.option_seq = i.option_seq
,fm_provider pv
식인데 일반적인 join 부분은 이해가 가는데
,fm_goods goods
,fm_goods_option goods_opt
,fm_provider pv
등 left 뒤에 , 콤마로 된 부분들도 있엇서 해당 join 부분이 정확하게 이해가 되지 않아서 질문을 남겨봅니다.
답변 3
https://dev.mysql.com/doc/refman/8.0/en/join.html
INNER JOIN
and ,
(comma) are semantically equivalent in the absence of a join condition: both produce a Cartesian product between the specified tables (that is, each and every row in the first table is joined to each and every row in the second table).
,(comma)는 inner join으로 보시면 됩니다.
먼저 join의 종류를 알아야 이해가 되지 않을까 생각됩니다.
join은 보통 4가지 종류로 구분됩니다. inner join, left join. right join , outer join
위에서 지금 사용된 join은 left join입명
콤마 , 뒤에
,fm_goods goods
,fm_goods_option goods_opt
,fm_provider pv
요렇게 해놓으셨는데 이건 테이블 명입니다.
,fm_goods_option goods_opt 이건 fm_goods_option 테이블을 goods_opt <--요걸로 명칭을 넣어서 사용하겠다는거구요.~
join은
inner join
left join
right join
outer join
left outer join 등이 있습니다만
그중에서
묵시적으로 , 로 테이블을 구분하면 inner join 으로 간주하고
테이블간의 where 의 조건에 의한 교집합만 검색하기때문에
범위가 축소되고, 조건이 좀더 명확해집니다.
left 조인은 주 테이블을 기준으로 검색하는 방식이라고 보시면됩니다.
검색해보니
참고할만한 자료도 있네요