【发布时间】:2014-12-04 11:09:09
【问题描述】:
我有一个简单的表格来描述这样的单元格。此表 cells 包含 3 个字段:column_id、row_id、value。此表不能为同一对 (column_id, row_id) 设置值。
例如,这包含这些值:
id column_id row_id value
1 0 0 'a'
2 0 1 'b'
3 1 0 'c'
这里的示例非常“简单”,但有超过 20.000 行和 50 列。
我正在寻找一种快速的方法来获取矩阵形式的结果,就像 Excel 所做的那样:
row_id column_0 column_1
0 'a' 'c'
1 'b' NULL
现在,我用一组 SELECT 成功了,像这样
SELECT row_id,
SELECT (value FROM cells AS cells_row_1 WHERE cells.row_id=cells_row_1.row_id AND column_id=1) AS column_1,
SELECT (value FROM cells AS cells_row_2 WHERE cells.row_id=cells_row_2.row_id AND column_id=2) AS column_2
FROM cells
此查询不可读且未优化。 你有更好的主意吗?
问候
【问题讨论】:
-
我认为没有更好的方法。
标签: mysql sql select optimization pivot