您好我有與數據庫表:產品,product_colors,顏色。SQL如何選擇參數的父ID或ID(如果沒有父)
產品有屬性:ID,姓名,...
Product_colors有屬性:ID,products_id,colors_id
顏色有屬性:ID,colors_id ,名稱
因此,產品有行中產品的顏色由products.id = product_colors.products_id 和未來連接加入跨product_colors.colors_id = colors.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
顏色可以包含colors_id的父代:
id colors_id name
__________________________________
1 null red
2 null green
3 1 flashred
4 2 kiwi
5 2 lightgreen
6 null black
紅 - > flashred,橙色
綠色 - >獼猴桃,淺綠,深綠
我怎樣才能得到它包含了所有家長的顏色(如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