こんにちは私はテーブルを持つデータベースを持っています:products_colors、colors。SQLの選択親IDまたはID(親でない場合)の引数
製品属性を持っている:ID、名前は、...
Product_colorsは属性を持っている:ID、colors_id:ID、products_idは、属性を持っている
色をcolors_id 、名称
id name
-------------------
1 produkt1
2 produkt2
3 produkt3
Product_colors:
id products_id colors_id
1 1 1
2 1 5
3 2 1
4 2 3
5 3 6
products.id = product_colors.products_id とproduct_colors.colors_id = colors.id
製品間colors_idする次接続によって加入商品の色の行を有します色は親の色を持つことができます_id:
id colors_id name
__________________________________
1 null red
2 null green
3 1 flashred
4 2 kiwi
5 2 lightgreen
6 null black
レッド - > flashred、オレンジ
グリーン - >キウイ、ライトグリーン、
darkgreenどのように引数の色は赤で、場合、私は、(parametrとして)すべての親の色が含まれているすべての製品を得ることができますライトグリーン - >選択された製品は赤と緑の色を正確に持つ必要があります
私は引数の色の親を取得する必要があります(引数が親でない場合は引数の色を取ります)、この親色は選択配列の配列を使用して配列に与えます。私はMYSQL
SELECT products.id AS id
FROM products
LEFT JOIN product_colors
ON products.id = product_colors.products_id
LEFT JOIN colors
ON product_colors.colors_id = colors.id
WHERE colors.id IN (1,5)
1,5にこれにしたい は[1,5]私は解決策が再び再参加が参加するID 1
COALESCE()を参照してください。 – Strawberry
期待される結果を共有してください。 –
Kumar_Vikasはい私は例のテーブルを追加し、私は引数の色が欲しい:1,5 id 1の製品を得る – Petr