sql left join 에서 a테이블에 있는 데이터들중 b테이블에 등록되지 않은 a테이블의 데이터만 조회
본문
$sql = " select * from {$g5['g5_shop_item_table']} where it_use = '1' order by it_id ";
위 코드처럼 상품을 조회해서 상품목록을 출력하고 있는데요.
게시판에 wr_1 에 it_id 를 물려서 게시글을 작성하고 있습니다.
여기에 보완하기 위해 글쓰기시 wr_1 에 이미 등록된 it_id 가 있으면 상품조회시 걸러내고 싶은데요. (동일한 상품을 물고 있는 중복게시글 방지를 위한....)
영카트 left join 이 많이 쓰이는것 같아 다른 페이지에서 left join 을 쓰고 있는 곳을 보고 적용을 하려고 합니다.
$sql = " select * from {$g5['g5_shop_item_table']} a left join {$write_table} b where a.it_use = '1' order by it_id ";
여기까지는 알겠는데.... 구글링해서 보면 on 절도 넣어서 on (a.id = b.id) 이렇게 가져오더라구요.
근데 제가 가져오고싶은 데이터는 wr_1에 등록되지 않은 it_id들만 조회를 하고 싶은데
어떻게 조회를 해야할까요...??
!-->!-->답변 1
기본적으로는 다음과 같은 형태가 될것 같습니다만
$sql = " select * from {$g5['g5_shop_item_table']} a left join {$write_table} b on b.wr_1 = a.it_id where a.it_use = '1' and b.wr_1 is null order by a.it_id ";
실제 데이터들의 형태와 분포도, 그리고 원하는 정확한 아웃풋에 따라
쿼리는 달라질수 있습니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.