MySQL查询返回非唯一列组合

标签 mysql

我有一个 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/

相关文章:

Python MySQL 语法错误 - 重复 key 更新

mysql - MYSQL CASE 表达式可以在相同的 WHEN 条件下运行良好吗?

php - 表单验证

mysql - 在 MySQL 中对 2 个表进行分组而不进行连接

php - 条件字符串中包含符号的 Codeigniter 查询

c# - 无法通过 ASP.NET Web 应用程序将数据插入 MySQL 表

mysql - SQL 不同的表或存储为同一表中的文本

mysql - 如何在多个条件下进行更新

php - SQL View 中的唯一列

mysql - Eloquent - 保存时的奇怪行为