0
複数の検索値を持つitemsテーブルと値テーブルを結合する基準に基づいてレコードを取得する助けが必要です。Mysqlは異なる(リレーショナル)テーブル(manyToMany)に複数の値を持つレコードを取得します
アイテムテーブル
+----+-----------+
| id | title |
+----+-----------+
| 82 | Test ITEM |
+----+-----------+
テーブル
+----+--------------+
| id | Attribute |
+----+--------------+
| 1 | An Attribute |
+----+--------------+
アイテム属性は、テーブル私は何
+----+---------+--------------+-----------+
| id | item_id | attribute_id | option_id |
+----+---------+--------------+-----------+
| 1 | 82 | 1 | 25 |
| 1 | 82 | 1 | 3 |
+----+---------+--------------+-----------+
値属性:
SELECT
p.*
FROM
product_products p
LEFT JOIN
product_attribute_values v ON v.product_id = p.id
LEFT JOIN
product_attribute_options o ON o.id = v.option_id
WHERE
(p.id = 82 OR p.parent_id = 82) AND
(o.id IN (25, 3))
GROUP BY p.id
しかし、3つのOR 25値を持つすべてのアイテムが返されるため、このクエリに問題があります。
同時に25と3の値を持つアイテムだけを返したいと思います。 Advanced Mysql Query to get master record if two conditions matches on different rows of child records
同じ結果:
はこれをしようとしました。
助けてください。
を追加します。私は2つ以上の値でこのクエリを試してみます。私は最終的な条件として持っていることを使用して考えることができませんでした:)良い仕事! –
答えを更新しました。 2番目の変種を試してください。 – Leran2002