我有一张如下表格,只是说一个人与同一团队中的其他人(包括你自己)匹配:
person1|person2
-------------
A | A
B | A
C | A
A | B
B | B
C | B
A | C
B | C
C | C
X | X
Y | X
X | Y
Y | Y
我想使用GROUP_CONCAT获得两条记录并具有以下内容
team
-------
A, B, C
X, Y
GROUP_CONCAT的顺序并不太重要,但我不希望像“A,B,C”,“B,A,C”那样重复。或者更好的是,与会员一起解决任何类型的队友:
teamid|person
-------------
1 | A
1 | B
1 | C
2 | X
2 | Y
答案 0 :(得分:1)
根据您的数据,您可以通过执行以下操作来处理:
select distinct group_concat(person2 order by person2)
from t
group by person1;
作为备注:您可以交换person2
和person1
并获得相同的结果。
答案 1 :(得分:1)
使用group_concat()生成团队成员列表。
为确保group_concat()
仅为每个可能的团队成员集创建一个唯一结果,请先对数据进行排序:
SELECT DISTINCT group_concat(person2)
FROM (SELECT person1, person2
FROM MyTable
ORDER BY person1, person2)
GROUP BY person1;