更新:解決策で問題が解決しなかったようですので、より良い方法で説明しようとしています。
多くのカスタムフィールドと値を持つ製品ディスプレイにフィルターを実装しようとしています。
例えば
カラー:レッド、ブルー、グリーン素材:シルバー、ゴールド、プラチナメーカー:MF1、MF2、MF3
ここで、誰かが色を赤と青、材料を金、製造元をMF1としてすべての製品を選択したい場合、正しいSQLは何でしょうか。Fiddle(http://www.sqlfiddle.com/#!2/6373d/2/0 )のDBスキーマを参照してください。
提案どおりにこのクエリを使用していますが、正しい結果が表示されていません。
SELECT d1.productid, d1.fieldid, d1.value FROM `xcart_extra_field_values` d1 LEFT JOIN xcart_products_categories AS cat ON d1.productid = cat.productid WHERE (d1.fieldid= '36' AND d1.value LIKE '%14 karat guld%') AND cat.categoryid = '797' UNION ALL SELECT d2.productid, d2.fieldid, d2.value FROM `xcart_extra_field_values` d2 LEFT JOIN xcart_products_categories AS cat ON d2.productid = cat.productid WHERE (d2.fieldid= '37' AND d2.value LIKE '%Brillanter%') AND cat.categoryid = '797'