mysql - sql - 如何在没有group_concat的情况下将不同的行合并为一个

标签 mysql sql

在这个例子中,我对同一个用户有不同的值(value)观。所以我必须在一行中获取所有这些值。

user_id     key           value
-------     --------      -----------
123         name       thomps
123         url        thomps.com
123         email      thomps@me.com

456         name       hond
456         url        hond.com
456         email      hond@me.com

如何获取这样的合并行的列表:

user_id    name       url           email
-------    ----       ----          ------
123        thomps     thomps.com    thomps@me.com
456        hond       hond.com      hond@me.com

我尝试使用 grop_concat 并加入子查询但没有成功

最佳答案

按用户分组,然后用一个案例得到不同列的结果

 select user_id, 
       max(case when `key` = 'name' then value end) as name,
       max(case when `key` = 'url' then value end) as url,
       max(case when `key` = 'email' then value end) as email
from your_table
group by user_id

关于mysql - sql - 如何在没有group_concat的情况下将不同的行合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533215/

相关文章:

php - 根据最大日期过滤结果

mysql - 在mysql和vb.net上插入数据

mysql - 如何从表中删除除一条记录之外的所有重复记录?

php - 在 Laravel 4 中获取查询字段信息

sql - 计算两行之间的差异,按天平均

sql - Spark 将列值拆分为多行

c# - 字符串方法不从数据库中的表返回值

php - 自动完成 SQL 查询建议 (Ajax+PHP)

mysql - SQL查询以提取按列分组的平均值

sql - node.js + postgres 数据库事务管理