我有三个表要合并,详见下文:
产品
- 产品ID
- 名称
- 价格
产品类别
- 产品ID
- 类别ID
类别
- 类别ID
- 名称
合并后的表
产品.产品ID 类别.类别ID 产品.名称 产品.价格 类别.名称(每个产品可能属于多个类别)
我的目标是在单个查询中获得每个产品及其相关类别。我该如何做?
我有三个表要合并,详见下文:
产品.产品ID 类别.类别ID 产品.名称 产品.价格 类别.名称(每个产品可能属于多个类别)
我的目标是在单个查询中获得每个产品及其相关类别。我该如何做?
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
不过,最好使用两个查询,而不是将多个值放入单个单元格中。