sql—动态透视表数据| mysql

vatpfxk5  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(496)

实际上,我的数据库中有一个表叫做 Table1 具有以下数据:

由于 AssignedColour , ColourFinding 以及 ColourPower 变化。
我想介绍所有 ProductID 一行中的数据,意味着如果有多个 AssignedColour , ColourFinding 以及 ColourPower 列出后,它将在末尾包含一个数字。
select查询的最终结果i应如下所示:

水平显示的列数基于每个productid的assignedcolour数
在mysql select查询中可以实现这样的功能吗?

ie3xauqp

ie3xauqp1#

sql查询无法根据查询执行期间发现的数据值扩展结果集的列数。选择列表中的列必须在准备查询时固定,然后才能读取任何数据。
在查询执行期间,列名也不能更改。它们必须在准备查询时设置。
在一个sql查询中无法执行您所描述的操作。您可以选择:
执行两个查询:一个用于枚举每个产品的颜色,然后使用第一个查询的结果格式化第二个查询,其中包含所需的列。
执行一个查询以获取表中存在的数据,然后在应用程序中编写代码以按行显示数据。
无论哪种方式,您都必须在客户机中至少编写一点代码。不能在一个查询中执行此操作。

相关问题