まず第一に、私の悪い英語をお詫びしたいと思います。複数のテーブルに問題があります。私はmySQLの世界ではまったく初心者ではありませんが、この問題の解決策を見つけることはできません。この問題では、4つのテーブルを使用します。
- カテゴリ
- 製品
- 仕様
- 仕様値
すべてのカテゴリには仕様と製品があり、すべてのspecificationvaluesには製品と仕様IDがあります。これで、ユーザーはさまざまな値で選択を行うことができます。これが私の問題です。ユーザーが値「緑」と脚「4」を選択すると、4本の脚を持つすべての緑色の製品が必要になります。そこで、JOIN(私が思うすべての種類)を使用して、適切な製品を選択しました(以下の例)
SELECT DISTINCT products.id
FROM products
LEFT JOIN specificationvalues ON specificationvalues.products_id = products.id
LEFT JOIN specifications ON specificationvalues.specifications_id = specifications.id
WHERE specifications.name='materiaal'
AND specifications.name='kleur'
AND specificationvalues.id='77'
AND specificationvalues.id='78'
問題は、すべての値が別々の行にあることです。そのため、WHEREは機能しません。MySQLエラーが発生しません。0行を返すことだけです。
誰かが私を助けてくれることを願っています!このフォーラムからたくさんの良いものを手に入れましたので、またお役に立てば幸いです。
昨日の変更が保存されなかった理由がわかりません。しかし、ここに再び私のデータがあります:
SPECIFICATIONS Table
ID CATEGORIES_ID NAME
38 297 Material
39 297 Measures
40 297 Color
SPECIFICATIONVALUES Table
ID SPECIFICATIONS_ID PRODUCTS_ID VALUE
1 38 988979 Masive wood
2 39 988979 24x57x98
3 40 988979 Yellow
4 40 988980 Black
5 39 388980 24x57x98
PRODUCTS Table
ID NAME
988979 Table
988980 Chair
だから今私は24x57x98の大きさのすべての黒い製品が欲しいです。あなたが私を助けてくれることを願っています!