MySQL:从一个表中选择引用两个其他表的字段

时间:2016-10-26 14:21:23

标签: mysql

我有3个表:Products,Categories,Product_Category。

产品表有:“id,product_name”

id     | product_name
------ | ------------
1      | glove
2      | shirt

分类表有:“id,category_name”

id     | category_name
------ | -------------
1      | cotton
2      | polyester
3      | leather

Product_Category表有“id,product_id,category_id”

id | product_id | category_id
-- | ---------- | -----------
1  | 1          | 1
2  | 1          | 3
3  | 2          | 2

产品可以有多个类别,因此我希望运行查询的以下输出

输出
手套 - 棉,皮革衬衫 - 涤纶

这是我没有运气的尝试。

SELECT products.product_name, categories.category_name
FROM product_category
INNER JOIN products on product_category.product_id=products.id
INNER JOIN categories on product_category.category_id=categories.id
LIMIT 0,1000

我意识到这可能是一个简单的查询,只是无法搞清楚。

1 个答案:

答案 0 :(得分:1)

试试这个

select p.product_name, group_concat(c.category_name, ",") category_name
from Product_Category pc 
join Categories c ON (pc.category_id = c.id)
join Products p ON (pc.product_id = p.id)
group by 1