MySQL查询返回非唯一列组合

1 mysql

我有一个带有computerid,userid和其他几列的MySQL表.现在我想要一个查询,它将返回多个用户共享computerid值的所有记录.查找以下示例数据:

computerid  userid
100         5     
105         10    
110         6     
100         7     
101         11    
100         5     
105         10    
101         11    

对于上面的数据集,mysql查询应返回以下结果,因为在这种情况下,computerid由两个用户id共享.

computerid  userid
100         5     
100         7     

Mar*_*ers 5

你可以这样做:

SELECT DISTINCT T2.computerid, T2.userid
FROM (
    SELECT computerid
    FROM table1
    GROUP BY computerid
    HAVING COUNT(DISTINCT userid) > 1
) T1
JOIN table1 T2
ON T1.computerid = T2.computerid
Run Code Online (Sandbox Code Playgroud)

结果:

computerid  userid
100         5
100         7

在(computerid)上添加索引以提高性能.