我对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}}。我不确定如何在表格中显示此内容,因此如果您需要更详细的问题,请发表评论,我会尽最大努力进行编辑。
任何帮助将不胜感激。
答案 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=...