繁体   English   中英

动态透视表数据 | mySQL

[英]Dynamically Pivoting Table Data | mySQL

本质上,我的数据库中有一个名为Table1的表,其中包含以下数据:

在此处输入图像描述

该表有一个重复的 ProductID,因为AssignedColourColourFindingColourPower的值不同。

我想在一行中显示所有ProductID数据,这意味着如果列出了多个AssignedColourColourFindingColourPower ,它将在末尾包含一个数字。

SELECT 查询的最终结果 I 应如下所示:

在此处输入图像描述

水平显示的列数基于每个ProductIDAssignedColour

这样的事情是否可以在 mySQL SELECT 查询中完成?

SQL 查询无法根据查询执行期间发现的数据值扩展结果集的列数。 SELECT-list 中的列必须在准备查询时固定,然后再读取任何数据。

此外,在查询执行期间不能更改列名。 它们必须在准备查询时设置。

没有办法做你在单个 SQL 查询中描述的内容。 您的选择是:

  • 执行两个查询:一个枚举每个产品的 colors,然后使用第一个查询的结果来格式化第二个查询,其中包含您想要的列。
  • 执行一个查询以获取表中存在的行中的数据,然后在您的应用程序中编写代码以按您认为最好的方式将其显示在行中。

无论哪种方式,您都必须在客户端中编写至少一点代码。 您不能在一个查询中执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM