그전에 통으로 query 문을 작성하다가 최근에 join 으로 쓰려고 하는데 잘안되서 이렇게 질문 드립니다.,
예전 구문
select * from tbl_goodsin, tbl_branch, tbl_mkind, tbl_mainkind, tbl_msubkind, tbl_goods, tbl_buyer
where tbl_goodsin. branch_id = tbl_branch. branch_id
and tbl_goodsin. mkind_id = tbl_mkind. mkind_id
and tbl_goodsin. main_id = tbl_mainkind. main_id
and tbl_goodsin. subkind_id= tbl_msubkind. subkind_id
and tbl_goodsin. goods_id = tbl_goods. goods_id
and tbl_goodsin. buyer_id = tbl_buyer. buyer_id
and tbl_goodsin. mkind_id = tbl_goods. mkind_id
and tbl_goodsin. main_id = tbl_goods. main_id
and tbl_goodsin. subkind_id = tbl_goods. subkind_id
and tbl_goodsin. branch_id ='999'
and tbl_goodsin. mkind_id ='W'
and tbl_goodsin. goods_inday ='20160104'
order by tbl_goodsin. goods_inday asc
테이블명 공통필드 테이블명
tbl_goodsin mkind_id tbl_goods
main_id
join 문 subkind_id
select * from tbl_goodsin goods_id
join tbl_branch
on tbl_branch. branch_id = tbl_goodsin. branch_id
join tbl_mkind
on tbl_mkind. mkind_id = tbl_goodsin. mkind_id
join tbl_mainkind
on tbl_mainkind. main_id = tbl_goodsin. main_id
join tbl_msubkind
on tbl_msubkind. subkind_id = tbl_goodsin. subkind_id
join tbl_goods
on tbl_goods. goods_id = tbl_goodsin. goods_id
join tbl_buyer
on tbl_buyer. buyer_id = tbl_goodsin. buyer_id
join tbl_mainkind
on tbl_mainkind. main_id = tbl_goodsin. main_id
join tbl_goods
on tbl_goods. mkind_id = tbl_goodsin. mkind_id
join tbl_goods
on tbl_goods. main_id = tbl_goodsin. main_id
join tbl_goods
on tbl_goods. subkind_id = tbl_goodsin. subkind_id
where tbl_goodsin. branch_id ='999'
and tbl_goodsin. mkind_id ='W'
and tbl_goodsin. goods_inday ='20160104'
order by tbl_goodsin. goods_inday asc
질문 1) join 문에 밑줄친 부분을 작성해서 실행하니 중복되었다고 에러가 발생 합니다
2) 밑줄친 부분을 삭제하고 실행(goods_id는 제외) 하면 같은 데이터가 중복으로 표시 됩니다
뭐가 잘못되엇는지요 처음 join 문을 쓰다보니 개념이 잘 안잡혀서요...
Comment 3
-
Terry
2016.02.03 12:47
-
이리
2016.02.03 13:00
on절에 한번에 쓰면 안되나요?
join tbl_goods on tbl_goods.goods_id = tbl_goodsin.goods_id and tbl_goods.mkind_id = tbl_goodsin.mkind_id and tbl_goods.main_id = tbl_goodsin.main_id and tbl_goods.subkind_id = tbl_goodsin.subkind_id
그리고 tbl_mainkind 테이블도 같은 조건으로 2번 join 하시는데 이유가 있는건지..
-
슈토파이터
2016.02.03 13:17
이리님 감사 합니다
다중조건에 and 라는 것을 배웠내요...감사합니다...
가급적이면 중복으로 나온다는 데이터가 좋겠죠?
를 올려주세요..
테이블명과 컬럼명만으로는 도움드리기가 힘듭니다.
샘플데이터를 토대로 주신 쿼리를 수행했을때
왜 중복으로 나오는지 (예상되는건 1:n 관계때문일듯하지만)
명확히 파악할수 있고
파악된걸 토대로 쿼리를 수정하던지 할수 있으니까요.
맛점하세요~