0

我有以下 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.

  • 之后,我将选择产品下的子颜色(因为它是关于服装的电子商店)。

这种表结构有可能吗?

非常感谢您的关注!

4

2 回答 2

1
SELECT * FROM products WHERE color = '' or code = color;

您可以考虑在两个表中规范化您的表,如下所示:

products(id, code, name)
alt_products(id, id_products, color)
于 2012-05-30T08:16:19.337 回答
0

可能有用的是:

SELECT `id`, `code`, `name`, GROUP_CONCAT(`color` SEPARATOR ', ')  as `colors`
FROM products 
GROUP BY `code`
于 2012-05-30T08:13:32.470 回答