我有一个看起来像这样的表:
+-------------+----------+---------------+------------+
| Contract_ID | Name | Username | Password |
+-------------+----------+---------------+------------+
| 12345671 | Facebook | john.doe | password |
| 12345672 | Google | john.doe | password |
| 12345673 | Apple | martha.malone | doodlebear |
| 12345674 | Samsung | jimmy47 | parkour445 |
| 12345675 | HTC | rick.grimes | simpsons33 |
+-------------+----------+---------------+------------+
我只想选择用户名/密码组合与契约(Contract) ID 之间的比例为一比一的记录。在这种情况下,这意味着我想选择该表中的第 3、4 和 5 条记录。
我尝试了 DISTINCT 关键字的不同组合,但这似乎不是正确的选择。是否有可以返回此信息的查询?
作为一种奖励问题:是否存在可以产生相反结果的查询(即仅记录契约(Contract) ID 和用户名/密码组合之间的比率大于 1 比 1 的情况)?
最佳答案
您应该将 GROUP BY 子句与 HAVING 子句一起使用,例如:
SELECT Username, Password FROM Table
GROUP BY Username, Password
HAVING COUNT(*) = 1
相反的是:
SELECT Username, Password FROM Table
GROUP BY Username, Password
HAVING COUNT(*) > 1
关于mysql - 如何选择两个字段唯一的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254387/