2014-05-10 2 views
0

내 질문에 답변하는 자원이 많이 있지만, 여전히 개념을 이해하지 못하기 때문에 이에 대한 명확한 해결책을 찾을 수 없습니다! 여기일대 다 관계 - MySQL

이야기 : 제품
이 이

제품 카테고리
CAT_ID
cat_name

cat_fid

PROD_NAME을 prod_id :

두 테이블을 가지고 분명히 cat_fid는 Categories 테이블의 외래 키입니다. 이제 문제 :
제품 '범주에 속하는 Su'n - 핫 라운드 & 스타
제품'달이 '범주에 속한다 - 감기, 라운드, 위성, 행성
제품'지구 '범주에 속한다 - 따뜻한, 라운드, 행성

지금 나는 모든 종류 라운드에서 제품을 다음 행성 또는 핫

prod_id의 PROD_NAME를 호출 할
1 일을 cat_fid ???
2 달 ???


2 콜드
1 핫 CAT_ID의 cat_name
3 라운드
4 ...
6 스타
5 행성 따뜻한 등 어떤 도움

에 대한


감사합니다

답변

0

질문을 올바르게 이해하고 있다면 세 번째 테이블 인 Product to Category 테이블이 누락 된 것 같습니다. 당신이 PRODUCT_ID 및 CATEGORY_ID 필드 PRODUCT_ID PRODUCT_NAME을, CATEGORY_ID 및 CATEGORY_NAME와 Category 테이블이있는 Product 테이블, 다음 Product_Category 테이블이 있어야처럼

보인다.

select p.product_id, p.product_name, c.category_id, c.category_name 
from product p 
    join product_category pc on p.product_id = pc.product_id 
    join category c on pc.category_id = c.category_id 
where c.category_name = 'Round' 
+0

이제는 prod_cat 테이블이 있습니다. 그런 다음 prod_id & cat_id를 입력하십시오. 이제 sun (1)의 prod_id에 cat_id hot (1)이 있습니다. 그러나 cat_id가 3과 6이기도합니다. 어떻게 해결할 수 있습니까? 예 : ProdID1 = CatID1, ProdID1 = CatID2 – user3145206