我有一个 MySQL 表,其中包含 computerid、userid 和一些其他列。现在我想要一个查询,它会返回所有记录,其中 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
最佳答案
你可以这样做:
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
结果:
computerid userid 100 5 100 7
在 (computerid) 上添加索引以提高性能。
关于MySQL查询返回非唯一列组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3608294/