묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Mysql - 복수의 테이블에서 동일 id 필드를 가진 레코드만 뽑아오기
2003.04.17 02:07
5개의 테이블이 있습니다.
각 테이블에는 로그인 한 후에 상품을 등록한 내용이 있습니다.
예를 들어 현재 세션 아이디가 test라면
A 테이블에는 test가 입력한 가전제품이 들어가고,
B 테이블에는 test가 입력한 가구제품이 들어가고.. 이런 식입니다.
테이블의 필드는 똑같지는 않지만 거의 비슷합니다.
제가 하고 싶은 작업은
로그인한 상태에서 자신이 등록한 상품을 리스트로 보고 싶은것인데요.
test라는 아이디로 등록된 상품을 5개의 테이블에서 빼와서
5개 테이블의 공통 필드(예, 상품명, 상품코드, 가격..)에 해당하는 내용을
리스트로 보여주려면 어떻게 해야합니까?
join에 대해 여기서 살펴봤습니다만, 잘 감이 오질 않아 부득이 하게 질문합니다.
도와주신다면 감사하겠습니다.
각 테이블에는 로그인 한 후에 상품을 등록한 내용이 있습니다.
예를 들어 현재 세션 아이디가 test라면
A 테이블에는 test가 입력한 가전제품이 들어가고,
B 테이블에는 test가 입력한 가구제품이 들어가고.. 이런 식입니다.
테이블의 필드는 똑같지는 않지만 거의 비슷합니다.
제가 하고 싶은 작업은
로그인한 상태에서 자신이 등록한 상품을 리스트로 보고 싶은것인데요.
test라는 아이디로 등록된 상품을 5개의 테이블에서 빼와서
5개 테이블의 공통 필드(예, 상품명, 상품코드, 가격..)에 해당하는 내용을
리스트로 보여주려면 어떻게 해야합니까?
join에 대해 여기서 살펴봤습니다만, 잘 감이 오질 않아 부득이 하게 질문합니다.
도와주신다면 감사하겠습니다.
댓글 4
-
특급잠수부
2003.04.17 11:04
-
정승희
2003.04.17 23:36
이것저것 생각해봤습니다만 join으로 해결될 문제가 아닌 것 같습니다.
두 개의 테이블에서 특정 필드를 뽑아다가 합쳐서 보여주는게 아니라
별개의 테이블에서 틀정 아이디로 등록된 레코드를 뽑아와서
화면에 리스트를 뿌려줘야한다는 겁니다.
아무래도 쿼리를 테이블 수만큼 날려야대는 걸까요.. ㅡㅡ; -
특급잠수부
2003.04.18 01:51
대상 테이블이 제품이라면.
한테이블에서 다 처리하시는게 낳을듯 한데요.
아직 운용되지 않는 사이트면 DB 모델링(중/소규모 사이트는 책에있는것처럼 정석적인 설계가 굳이 필요없습니다.)을 실무에 적합한쪽으로 바꿔보시는것도 고려해보시길 제안드립니다. -
impre
2003.04.29 01:11
저도 이것때문에 고민 많이 했는데요...
MySQL에서는 union이 안되니까..어쩔 수 없이 여러번 돌려야 할듯 하네요..
select a.*,b.* from TBL_A a inner join TBL_B b on a.컬럼 = b.컬럼 where 조건
// 아우터 조인 : 지정한 방향의 테이블의 내용을 다 가져오고 조건에 맞는 열을 뽑아옴
select a.*,b.* from TBL_A a left join TBL_B b on a.컬럼 = b.컬럼 where 조건
혹은 right조인
그리고 셀프조인