进行查询以返回矩阵

时间:2014-09-16 03:37:17

标签: mysql

我有一张描述距离矩阵的表格。就像这样

idOrigin idDestiny distance
 0          0         0
 0          1         1
 0          2         2
 1          0         1
 1          1         0
 1          2         1
 2          0         2
 2          1         1
 2          2         0

我希望像这样返回数据

0 1 2
1 0 1
2 1 0

行代表idOrigin,列代表idDestiny。

有没有办法获得这个输出?要么是纯粹的MySQL?

1 个答案:

答案 0 :(得分:1)

您可以为每个destination值组选择一行以逗号分隔的idOrigin值,destination值由idDestinygroup_concat排序select group_concat(destination order by idDestiny) from mytable group by idOrigin order by idOrigin 。这假定从中选择的表没有任何缺失的坐标,否则会产生不正确的矩阵。

{{1}}

http://sqlfiddle.com/#!2/45fde4/3