MySql:动态添加列,与另一个表中的行一样多

MySql:动态添加列,与另一个表中的行一样多,mysql,pivot-table,Mysql,Pivot Table,传输表 id name 1 T1 2 T2 托盘台 id name 1 P1 2 P2 运输托盘容量表 id transport_id pallet_id capacity 1 1 1 10 2 1 2 null 3 2 1 20 4 2 2 24 如何生成这样的表: id tra

传输表

id  name
1   T1
2   T2
托盘台

id  name
1   P1
2   P2
运输托盘容量表

id  transport_id  pallet_id  capacity
1   1             1          10
2   1             2          null
3   2             1          20
4   2             2          24
如何生成这样的表:

id  transport_id   pallet_id_1_capacity   pallet_id_2_capacity
1   1              10                     null
2   2              20                     24
问题:可以添加托盘和运输工具,因此,这两种数量都不预先知道。 例如,manager添加了另一个托盘类型,应生成“托盘id\u 3\u容量”列,如果没有可用的容量数据,则该列可以显示null。 另一名经理可在收到通知后填写“运输托盘容量”表


有没有一种在mysql中构建sql的方法可以考虑上述内容:特别是-托盘的动态数量?

在编写查询时,必须固定sql选择列表。不能使SQL根据找到的数据自动扩展其列

但您的请求很常见,称为透视表或交叉表

唯一的解决方案是分多个步骤进行:

查询以发现不同的托盘ID。 使用应用程序代码构建动态SQL查询,其列数与第一次查询中找到的不同托盘id值相同。 运行生成的动态SQL查询。 这适用于所有SQL数据库,而不仅仅是MySQL

有关在MySQL中生成数据透视表查询的高投票率解决方案,请参阅

我不会把你的问题当作这个问题的重复来投票,因为你的查询还涉及到transport_id,这会使查询解决方案有点不同。但是阅读其他透视表解决方案应该可以让您开始