我有以下MySQL表products
:
id, code, name, color
1, 'D555', 'Men T-shirt', ''
2, 'D556', 'Black Men T-shirt', 'D556'
3, 'D557', 'Silver Men T-shirt', 'D556'
4, 'D558', 'Men T-shirt', ''
5, 'D559', 'Black Men T-shirt', 'D559'
6, 'D560', 'White Men T-shirt', 'D559'
如果产品有其他颜色,则列color
不为空,例如:
代码为“D556”的产品为黑色,也有银色。
我正在使用SELECT * FROM products
,但现在我想选择主要产品(没有子颜色),即:
D555, D556, D558, D559
。
表格的那种结构是否可能?
非常感谢您的关注!
答案 0 :(得分:1)
SELECT * FROM products WHERE color = '' or code = color;
您可以考虑在两个表中对表进行规范化,如下所示:
products(id, code, name)
alt_products(id, id_products, color)
答案 1 :(得分:0)
可能有用:
SELECT `id`, `code`, `name`, GROUP_CONCAT(`color` SEPARATOR ', ') as `colors`
FROM products
GROUP BY `code`