【发布时间】:2023-03-08 14:02:01
【问题描述】:
基本上我的数据库中有一个名为Table1 的表,其中包含以下数据:
该表有一个重复的 ProductID,因为 AssignedColour、ColourFinding 和 ColourPower 的值不同。
我想在一行中显示所有ProductID 数据,这意味着如果列出的AssignedColour、ColourFinding 和ColourPower 不止一个,则其末尾将包含一个数字。
SELECT 查询的最终结果 I 应如下所示:
水平显示的列数基于每个 ProductID
的 AssignedColour 数量这样的事情可以在 mySQL SELECT 查询中完成吗?
【问题讨论】:
-
这就是所谓的“透视”。
-
在 MySQL 8.x 中很容易做到。您使用的是 MySQL 5.x 还是 8.x?
-
查询返回预定义的列。如果您在编写查询时知道最大颜色数,则可以返回尽可能多的列。如果不知道,就无法编写查询。通常,这不是您通常在 SQL 中所做的事情,而是在您的应用程序或网站中。
-
认真考虑处理应用代码中数据显示的问题
-
本题的解法与SQL无关。这应该在应用程序端实现。您应该删除 SQL 和 MySQL 标签,并添加您正在使用的编程语言。
标签: mysql sql pivot-table