在mariadb中连接具有相同id的行?

时间:2017-12-20 13:39:27

标签: mysql mariadb

我想将pidSELECT *,STUFF(( SELECT DISTINCT', ' + tbl1.name FROM @tbl1 WHERE pid = tbl1.pid FOR XML PATH('')), 1, 2, '') FROM ( SELECT DISTINCT pid FROM @tbl1 ) tbl1 INNER JOIN tbl2 ON tbl2.pid = tbl1.pid 连接起来。

以下是我正在尝试的查询。但它给了我错误:

  

#1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以便在#< tbl1 WHERE pid = tbl1.pid附近使用正确的语法。对于XM'在第3行

pid      name
1        Editor
1        Reviewer
7        EIC
7        Editor
7        Reviewer
7        Editor
19       EIC
19       Editor
19       Reviewer

更新

示例数据

1 Editor,Reviewer
7 EIC,Editor,Reviewer
19 EIC,Editor, Reviewer

所需数据

flutter run -d all

1 个答案:

答案 0 :(得分:2)

您可以在mysql中使用group_concat

select pid,group_concat(name)
from your_table
group by pid

它将返回3行,包括pid和逗号分隔的名称列表

  

另请注意"结果被截断为group_concat_max_len系统变量给出的最大长度,该变量的默认值为1024.尽管返回值的有效最大长度可以设置为更高的值受max_allowed_pa​​cket"

的限制

DEMO