フィルタIDを持つ製品IDを格納するテーブルがあります。マッピングは1対多です。 (1つの製品は多くのフィルタと関連付けることができます)。今私はすべて基準に一致するレコードを取得する必要があります。例えば、私はFILTERS 1,5および7を持っている製品Iは、1〜5以下Mysqlのクエリで結合とフィルタを使用する
7にマッピングされている製品のような完全一致がテーブル構造
CREATE TABLE IF NOT EXISTS `product_to_filter` (
`product_id` int(11) NOT NULL,
`filter_id` int(11) NOT NULL,
PRIMARY KEY (`product_id`,`filter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ありたいを取得する必要があると言います
私は以下のクエリを試しましたが、それは私に希望の結果を取得していません。
select distinct p1.product_id, p1.filter_id from product_to_filter p1
join product_to_filter p2 on 1=1
join product_to_filter p3 on 1=1
where
p1.filter_id=1 AND p2.filter_id=5 AND p3.filter_id=7
親切に登録しようではこの問題に
こんにちはJaydip、クエリが動作しています、私は別個の行が必要ですが、すべてをフェッチしています。 – VIGNESH
@pepAg product_idはPRIMARY KEYですか? –
@PepAg 'select'文から 'p1.filter_id'を削除するだけです –