我有两张桌子:
Table1:
id (uniqueidentifier, primarykey)
title (varchar(50))
Table2:
id (uniqueidentifier, primarykey)
table1id (uniqueidentifier, foreignkey to table1)
category (varchar(50))
我还有以下SQL将表1中的所有结果及表2中的所有类别返回给我。
select t1.*, t2.category as cat from table1 as t1
left join table2 as t2 on t1.id = t2.table1id
问题是,类别可能有多个结果,那么我如何用逗号将它们连接到cat
的列?
例如,Table2可能包含以下数据:
Table2 row 1:
id = 1
table1id = 1
category = "abc"
Table2 row 2:
id = 2
table1id = 1
category = "def"
查看两条记录如何具有相同的table1id
,但category
的值不同。
如何用逗号连接两个(或更多)潜在值,并将其作为单个字符串返回到上面查询中的结果列cat
?
Desired output:
t1.id = 1
t1.title = table1 title
cat = abc, def
答案 0 :(得分:2)
在group_concat
上使用t2.category
,并按您要选择的其他列进行分组。
select t1.id, t1.title, group_concat(t2.category) as cat from table1 as t1
left join table2 as t2 on t1.id = t2.table1id
group by t1.id, t1.title