【发布时间】:2015-02-25 17:34:48
【问题描述】:
我在 MySQL 中编写以下查询时遇到问题。我有一个名为pizz0r_pizza_ingredients 的表,看起来像这样:
| id | pizza_id | ingredient | amount | measure |
+----+----------+------------+--------+---------+
| 6 | 1 | 15 | 3 | 4 |
|178 | 17 | 1 | 160 | 1 |
| 3 | 1 | 20 | 3 | 4 |
我想搜索对成分有特定要求的比萨,例如:
SELECT `pizza_id`
FROM `pizz0r_pizza_ingredients`
WHERE `ingredient` = 15 AND `ingredient` != 20
GROUP BY `pizza_id`
我正在尝试获取 ingredient 等于 15 的条目,但如果它也有成分 20,则忽略该 Pizza_id。
当前结果是1,但在本例中不应返回任何内容。
【问题讨论】:
-
为了我正确理解你,你的场景类似于“告诉我所有含有成分 15(比如辣椒)但不是成分 20(比如意大利辣香肠)或成分 21(比如,火腿)”?
-
我认为您应该澄清您当前的结果是
1,但您不希望它作为您的结果,对吧?因为1有成分20? -
没错@RowlandShaw
-
@McAdam331 是的。我真正的桌子上的 Ofc 比萨饼多了很多
-
@Mcadam331 我想编辑它,但你的速度更快,谢谢
标签: mysql sql join group-by relational-division