簡體   English   中英

MySQL Group_concat在SubQuery DISTINCT中兩次

[英]MySQL group_concat twice in SubQuery DISTINCT

我有這樣的表:

title   name
1   ADAM SMITH
1   JACK SMITH
1   ROBERT ABADI
2   JACK SMITH
2   JAMES ANDERSON
3   JACK SMITH

當我通過查詢調用數據時

SELECT title, name, group_concat(name) as gname
FROM sample
GROUP BY title

結果是:

1   ADAM SMITH  ADAM SMITH,JACK SMITH,ROBERT ABADI
2   JACK SMITH  JACK SMITH,JAMES ANDERSON
3   JACK SMITH  JACK SMITH

現在,我想再次按名稱分組。 所以我稱這個查詢為結果。

SELECT title, name, group_concat(distinct gname)
FROM
(
SELECT title, name, group_concat(name) as gname
FROM sample
GROUP BY title
) sub
GROUP BY sub.name


1   ADAM SMITH  ADAM SMITH,JACK SMITH,ROBERT ABADI
2   JACK SMITH  JACK SMITH,JAMES ANDERSON,JACK SMITH

但是我不想在上一欄兩次出現“ JACK SMITH ”。

我知道原因是因為第一個group_concat()結果是不能與' DISTINCT '子句一起應用的字符串。

任何建議表示贊賞。

使用JOIN獲得共同作者:

SELECT s1.name, GROUP_CONCAT(DISTINCT s2.name)
FROM sample AS s1
JOIN sample AS s2 ON s1.title = s2.title
GROUP BY s1.name

DEMO

如果您不想將作者顯示為自己的合著者,請將AND s1.name != s2.name添加到ON條件。

暫無
暫無

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

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