mysql - 将 MySQL 表转换为边缘列表

标签 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

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

你建议我怎么做?

最佳答案

使用自连接

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

关于mysql - 将 MySQL 表转换为边缘列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472663/

相关文章:

PHP Javascript?当用户关闭页面或浏览器时做一些事情

mysql - 如何确定表中多个项目的第一个实例

php - 是否可以使用 cygwin 在 windows 机器上完全模拟 linux web 服务器?

php - 在mysql数据库中存储特殊的utf字符

mysql - 使用同一个表中的第一个记录实例更新多行

mysql - mysql中的SEC_TO_TIME函数仅计算group by中的一个条件

php - 在数据库中存储和选择多个 ID

mysql - MySQL 在引用 VARCHAR 上的索引前缀时如何使用 ORDER BY?

mysql - Google Cloud MySQL 基于行的复制数据类型错误

mysql - 更新 mysql 返回 SQL 语法错误