-3

我有 3 个表 product、filter、product_filter - 多对多关系我正在尝试过滤这样的产品:

SELECT p.* FROM product p
INNER JOIN product_filter pf ON pf.product_id = p.id
WHERE (pf.filter_id = 1 OR pf.filter_id = 2) AND pf.filter_id = 3

问题是有些产品具有所有过滤器(1,2,3),但我得到 0 个结果

请帮忙 :)

4

1 回答 1

3

对于叉积中的给定行,只有一个 filter_id。product_filter 的同一行中没有 1 和 3。

要获得这种效果,请尝试按照以下方式进行双重连接:-

SELECT p.* FROM product p
INNER JOIN product_filter pf1 ON pf1.product_id = p.id
INNER JOIN product_filter pf2 ON pf2.product_id = p.id
WHERE (pf1.filter_id = 1 OR pf1.filter_id = 2) AND pf2.filter_id = 3
于 2013-07-18T08:48:01.020 回答