在这个例子中,我对同一个用户有不同的值。所以我必须把所有这些值都放在一行。
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并加入子查询但没有成功
答案 0 :(得分:5)
由用户分组,然后使用案例在不同的列中获取结果
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