繁体   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