【发布时间】:2016-11-30 21:24:21
【问题描述】:
使用 MySQL
我不想实现的是只返回产品(WHERE pf.filter = 10 AND pf.filter = 15 AND pf.filter = 18)并且没有其他产品。
我认为下面的查询会起作用,但它没有给我任何结果。 当我删除 WHERE 和条件时,有 3 行 pf.filter_id 为 10,15,18
SELECT * FROM products p
LEFT JOIN filter pf ON (p.product_id = pf.product_id)
WHERE pf.filter = 10
AND pf.filter = 15
AND pf.filter = 18
GROUP BY p.product_id
应该如何构造这个 SQL 查询才能工作?
【问题讨论】:
-
你这样做似乎没问题,多个AND通常效果很好,你确定这不是逻辑问题吗?我可以看到你问等于 15 的过滤器和等于 18 的过滤器,它应该是 OR
-
这是逻辑问题,一个字段一次不能超过一个值。
-
filter怎么可能是 10 AND 15 AND 18? -
不知道你所说的逻辑问题是什么意思?
-
因此,如果您说产品必须具有所有 3 个过滤条件,那么
havingis count=3 是一种方法。如果它可以是 3 个中的任何一个,那么or或in将起作用。我有一辆车。它不能是汽车、货车和卡车。它可以是汽车、货车或卡车。 ...或者我可以拥有一辆有 4 门、自动和天窗的汽车......它必须满足所有 3 个标准或 3 个标准中的任何一个吗?
标签: mysql sql multiple-conditions