我的表中有一个用户列表,其中包含与之关联的项目。我希望能够将项目字段合并到一个列表中,或者如果该行具有匹配的用户/电子邮件,则创建另一列。
我在MySQL表中有以下结构:
╔═══════════╦═════════════╦═════════════╦═════════════╦═════════════╦════════════╗
║ ID ║ User_ID ║ Item ║ Date ║ User ║ Email ║
╠═══════════╬═════════════╬═════════════╬═════════════╬═════════════╬════════════╣
║ 1 ║ 1 ║ Laptop 1 ║ 30th Nov ║ John ║ J@test.com ║
║ 2 ║ 2 ║ Laptop 3 ║ 12th Nov ║ Emma ║ e@test.com ║
║ 3 ║ 2 ║ Camera 3 ║ 12th Nov ║ Emma ║ e@test.com ║
╚═══════════╩═════════════╩═════════════╩═════════════╩═════════════╩════════════╝
我对SQL很新,但我想我需要在列函数中使用某种类型的转置字段?
非常感谢任何帮助
由于
答案 0 :(得分:1)
我想你想要group_concat()
。就个人而言,我会使用user_id
,而不是user/email
。或者,也许三者在一起。像这样:
select user_id, user, email, group_concat(item) as items
from table t
group by user_id, user, email;