MySQL子查询一行列出信息

标签 mysql sql pivot

我正在尝试获取一个查询以在一行中显示事件奖品的所有数据。例如,这是我的表格的示例。

Event_id    Place    Money
101         1        120
101         2        60
101         3        30
102         1        100
102         2        50
102         3        25

我想要的结果如下所示:

Event_id    First    Second    Third
101         120      60        30
102         100      50        25

如能提供帮助,我们将不胜感激。

最佳答案

希望这对您有所帮助。

SELECT    Event_ID,
          GROUP_CONCAT(IF(place = 1, `money`, NULL)) `First`,
          GROUP_CONCAT(IF(place = 2, `money`, NULL)) `Second`,
          GROUP_CONCAT(IF(place = 3, `money`, NULL)) `Third`
FROM      tableName
GROUP BY  event_id

如果您想了解更多有关 sql 技巧的信息,请访问:

Common but Useful MySQL Queries

SEE on SQLFiddle

关于MySQL子查询一行列出信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10477101/

相关文章:

python - 将特定索引转换为自己的行

sql - SQL Server 中的数字散列函数?

未在新 session 上设置 MySQL 查询变量

java - 如何从逗号拼接的数据库字符串中进行 SELECT - SQL

MYSQL 错误 1823 当 SET FOREIGN_KEY_CHECKS=1

mysql - 在查询中将java时间转换为sqldate

php - 将 PHP/MySQL 数组编码为 JSON 时出现问题

sql - 如何进行数据透视并计算列平均值

MySQL,多行分隔字段

c# - 当我在c#中处理连接时,Mysql是否在6.3.6中关闭连接(Mysqlconnection)