我有3代表產品,過濾器,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的結果
請幫助:)
我有3代表產品,過濾器,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的結果
請幫助:)
對於跨產品的給定行只有一個過濾器_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
我認爲OP希望其中一個產品具有過濾器(1,3)或(2,3) –