将MySQL表转换为边缘列表

时间:2014-05-05 12:37:58

标签: mysql

我有一个MySQL表,如下所示:

Project      User
ABC      1
ABC      2
ABC      3
DEF      2
DEF      4

换句话说,您可以从输入中看到第1,2和3人在项目ABC上工作。在我的数据中,这意味着他们有一种关系(即他们在同一个项目上工作)。

我正试图找到一种方法,以便我只能在用户之间建立链接。如果用户一起处理项目,则会有链接。最终列表如下所示:

1 2
1 3
2 3
2 4

因此,我希望每个关系都有一行。

你怎么建议我这样做?

1 个答案:

答案 0 :(得分:2)

使用自我加入

select t1.user user1, t2.user user2
from table1 t1 inner join table1 t2 on t1.user<t2.user and
t1.project=t2.project

Fiddle