实际上,我的数据库中有一个表叫做 Table1
具有以下数据:
由于 AssignedColour
, ColourFinding
以及 ColourPower
变化。
我想介绍所有 ProductID
一行中的数据,意味着如果有多个 AssignedColour
, ColourFinding
以及 ColourPower
列出后,它将在末尾包含一个数字。
select查询的最终结果i应如下所示:
水平显示的列数基于每个productid的assignedcolour数
在mysql select查询中可以实现这样的功能吗?
1条答案
按热度按时间ie3xauqp1#
sql查询无法根据查询执行期间发现的数据值扩展结果集的列数。选择列表中的列必须在准备查询时固定,然后才能读取任何数据。
在查询执行期间,列名也不能更改。它们必须在准备查询时设置。
在一个sql查询中无法执行您所描述的操作。您可以选择:
执行两个查询:一个用于枚举每个产品的颜色,然后使用第一个查询的结果格式化第二个查询,其中包含所需的列。
执行一个查询以获取表中存在的数据,然后在应用程序中编写代码以按行显示数据。
无论哪种方式,您都必须在客户机中至少编写一点代码。不能在一个查询中执行此操作。