我想要组合3个表格,详见下文:
product.productID category.categoryID product.name product.price category.name(虽然每个产品可以属于多个类别)但
我想要做的是在单个查询中为每个产品提供与其相关的类别。我怎么会这样呢?
答案 0 :(得分:30)
您需要两个联接:
SELECT
product.productID,
category.categoryID,
product.name,
product.price,
category.name
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
如果某个产品可能没有任何类别且您仍想要退回,请在两个地方将JOIN更改为LEFT JOIN。
另一种方法:
SELECT
product.productID,
product.name,
product.price,
GROUP_CONCAT(category.name)
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
GROUP BY product.productID
然而,使用两个查询而不是将多个值放入单个单元格可能更好。
答案 1 :(得分:0)
如果使用mySQL ...
,可以使用group_concat看到这个帖子。
SQL to join one table to another table multiple times? (Mapping products to categories)
(可能重复)