mysql - 将列转为行 SQL

标签 mysql sql union

我有一组数据表,如下所示:

[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/

相关文章:

php - 摆脱 db_query() drupal 中的单引号

php - 同步更新信息

c# - 使用 Telerik openAcces ORM 从 mysql 服务器获取数据并将其上传到 Sql 服务器

sql - 单个查询中的多个 MAX 值

php - 如何获取记录求和到一个值然后添加到两个新表中?

mysql - 无法创建包含联合的 View

c - C语言静态存储 union 和命名成员初始化

c - union 数据存储如何工作。得到令人困惑的输出

java - 如何使用基于字段的单个子对象查询表中对象的 sql?

php - 从 PHP 将上传的 CSV 导入 MySQL 表时更正 LINES TERMINATED BY