如何在MySQL中查询以下数据透视表?

时间:2015-10-25 21:46:38

标签: mysql pivot-table

我对SQL很陌生,而且我已经学习了一些关于数据透视表的知识。现在,我试图同时查询3个表,但无法使其正常工作。

以下是我目前的表格:

产品表

|    p_id   |    name    |
|------------------------|
|     1     |    ItemA   |
|------------------------|
|     2     |    ItemB   |

类别表

|  cat_id   |    cat     |
|------------------------|
|     1     |    catA    |
|------------------------|
|     2     |    catB    |

** prod_cat数据透视表,prod和cat为FK **

|    prod   |    cat     |
|------------------------|
|     1     |    1       |
|------------------------|
|     2     |    1       |
|------------------------|
|     1     |    2       |
|------------------------|
|     2     |    2       |

数据透视表基本上允许我为每个产品分为多个类别。我非常确定我的逻辑表格设置是否合适(我可能错了)但我遇到的问题是我不确定如何查询所有3个{} {{I} 1}}。我不确定如何在表格中显示此内容,因此如果您需要更详细的问题,请发表评论,我会尽最大努力进行编辑。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

有不同的方法。 一个是

select * from prod_cat
left join products on products.p_id = prod_cat.prod
left join category on category.cat_id = prod_cat.cat

您需要学习的是如何学习mysql 加入

您可以先阅读w3schools

上的课程

答案 1 :(得分:0)

prod_cat是一个连接表,而不是数据透视表,并且你需要连接来连接你的3个表:

select p.p_id, p.name, c.cat
from products p
inner join prod_cat pc on p.id=pc.prod
inner join category c on pc.cat=c.cat_id
where p.p_id=...