簡體   English   中英

在mariadb中連接具有相同ID的行?

[英]concatenate rows with same id in mariadb?

我想用相同的pid連接name

下面是我正在嘗試的查詢。 但這給了我錯誤:

#1064-您的SQL語法有誤; 檢查與您的MariaDB服務器版本相對應的手冊,以在第3行的'@ tbl1 WHERE pid = tbl1.pid FOR XM'附近使用正確的語法

SELECT *,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

UPDATE

樣本數據

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

您可以在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM