我有一个带有computerid、userid和其他一些列的MySQL表。现在我想要一个查询,它将返回computerid值被多个用户共享的所有记录。查找以下示例数据:
计算机ID用户ID
100 5个
105 10个
110 6个
100 7个
101 11号
100 5个
105 10个
101 11号
对于上述数据集,mysql查询应返回以下结果,因为在本例中,computerid由两个用户id共享。
计算机ID用户ID
100 5个
100 7个
最佳答案
你可以这样做:
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
结果:
计算机ID用户ID
100 5个
100 7个
在(computerid)上添加索引以提高性能。