我的 MySQL 表结构由两个类似于以下的表组成:
UserId field1 field2
1 XXX YYY
2 ABC DDD
3 EEE FFF
.
.
.
n GGG DDD
UserId attribute
1 blah
1 adfadf
1 ddad
2 adff
3 adfa
3 sdff
.
.
.
z adss
表 1 每个 ID 只有 1 条记录。表 2 每个 id 有 M 条记录。表 1 和表 2 中的 id 是相关的。我的查询类似于以下内容:
SELECT
t1.`UserId`,
t1.`field1`,
t1.`field2`,
t2.`attribute`
FROM `table1` AS `t1`
LEFT JOIN `table2` AS `t2` ON `t1`.UserId = `t2`.UserId
WHERE t1.`UserId` = 3
查询返回以下内容:
3 EEE FFF adfa
3 EEE FFF sdff
我不想为每个返回重复记录。我想返回一行,比如
3 EEE FFF (adfa,sdff)
第 4 个字段是一个数据结构(数组?结果集?),它包含为给定用户 ID 返回的所有属性。
编辑::: 我看到许多涉及 CONCAT 的解决方案,将其转换为 CSV。有逗号的字段会不会把事情搞砸?