![](/img/trans.png)
[英]How to select all distinct values in a MySQL subquery into a group_concat?
[英]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
如果您不想將作者顯示為自己的合著者,請將AND s1.name != s2.name
添加到ON
條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.