一对多的关系 - MySQL

时间:2014-05-10 02:36:39

标签: mysql relational-database

我看到很多资源解决了我的问题,但我仍然无法找到明确的解决方案,可能是因为缺乏理解这个概念!

这里的故事:

有两张桌子: 产品
prod_id
prod_name
cat_fid

产品类别
CAT_ID
cat_name

显然,cat_fid是Categories表的外键。现在的问题是:
产品“Su”属于类别 - Hot,Round&星
产品'月亮'属于类别 - 冷,圆,卫星,行星
产品'地球'属于类别 - 暖,圆,行星

现在我想调用所有类别Round下的产品,然后调用Planet或Hot

prod_id prod_name cat_fid
1太阳???
2月亮???

cat_id cat_name
1热门
2冷
3轮 温暖的 5行星
6星......等等


谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,我认为您错过了第三个表格,即产品到类别表格。

好像你应该有一个带有Product_Id和Product_Name的Product表,一个带有Category_Id和Category_Name的Category表,然后是一个带有Product_Id和Category_Id字段的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'