SQL如何选择参数的父ID或ID(如果没有父)
您好我有与数据库表:产品,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
回答:
该解决方案将涉及再重新加入到COLORS表格,以获得父级颜色数据。
如果您有其他加入这样的:
LEFT JOIN colors PARENT_COLOR ON colors.colors_id = PARENT_COLOR.id
然后你就可以使用这个PARENT_COLOR表以显示或从该表中筛选结果。
以上是 SQL如何选择参数的父ID或ID(如果没有父) 的全部内容, 来源链接: utcz.com/qa/261261.html