Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL将联接的结果连接到列中_Mysql_Sql - Fatal编程技术网

Mysql SQL将联接的结果连接到列中

Mysql SQL将联接的结果连接到列中,mysql,sql,Mysql,Sql,我有两张桌子: 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

我有两张桌子:

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
问题是,category可能有多个结果,因此如何通过逗号将它们连接到
cat
的列中

例如,表2可能包含以下数据:

Table2 row 1:
id = 1
table1id = 1
category = "abc"

Table2 row 2:
id = 2
table1id = 1
category = "def"
查看这两条记录如何具有相同的
表1id
,但
类别的值不同

如何通过逗号连接两个(或多个)潜在值,并将其作为单个字符串返回到上述查询的结果列
cat

Desired output:
t1.id = 1
t1.title = table1 title
cat = abc, def

使用
t2上的
group\u concat
。分类
,并按要选择的其他列进行分组

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

可能重复感谢,但它似乎没有分组(即,它没有删除重复项)。例如,它显示的是
IE8122014-PHL6、IE8122014-PHL6、IE8122014-PHL6
。如何删除这些重复项,并且每行仅显示一次类别?编辑:我尝试了
group\u concat(DISTINCT t2.category)
,每行都可以正常工作