如何编写查询以列出出现在多个Recipe中的Products名称
查询出现在多个菜谱中的产品名称
以下是满足需求的SQL查询语句:
SELECT p.Name FROM Product p JOIN Recipe_Ingredient ri ON p.ProductID = ri.ProductID GROUP BY p.ProductID, p.Name HAVING COUNT(DISTINCT ri.RecipeID) > 1;
语句解释:
- 通过
JOIN关联Product表和Recipe_Ingredient关联表,借助ProductID建立两者的关联关系 - 使用
GROUP BY按产品的ProductID和Name分组,保证每个产品作为独立分组统计 COUNT(DISTINCT ri.RecipeID)用于统计每个产品关联的不同菜谱数量,添加DISTINCT是为了避免同一菜谱中多次使用同一产品导致的计数误差HAVING子句筛选出关联菜谱数量大于1的产品,得到出现在多个菜谱中的产品名称
内容的提问来源于stack exchange,提问作者sql3489
相关产品推荐
相关产品推荐

