我有一组数据表,如下所示:
[id],[testid],[date],[type],[score1],[score2],[score3],[score4]
我需要它看起来像这样
[id],[testid][date],[type],[score],[scorecode] (score1)
[id],[testid][date],[type],[score],[scorecode] (score2)
[id],[testid][date],[type],[score],[scorecode] (score3)
[id],[testid][date],[type],[score],[scorecode] (score4)
分数代码取决于分数 (1-4),因此分数 1 行需要 ACTMATH 分数代码,分数 2 需要不同的分数代码。
当我最初构建这个时,我使用了 UNION ALL。但是,我只是想确保没有更有效的方法来完成此操作。
最佳答案
您应该将分数分成自己的表格
其中包含 ScoreCode 和 Score 以及返回测试 ID 的链接
然后您可以执行 SQL Join
查询并轻松获得该格式的结果。
测试
[测试 ID]、[日期]、[类型]
分数
[ScoreId],[testid],[分数],[分数代码]
SELECT *
FROM Tests T
JOIN Scores S
ON T.Testid = S.TestId
关于mysql - 将列转为行 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29977918/