查找唯一的列对

时间:2015-08-21 16:02:37

标签: mysql sql

假设我的表看起来像这样:

1. user 1.2.3.4
2. user 1.2.3.4
3. user 2.3.4.5
4. user 2.3.4.5
5. user 1.2.3.5
6. anotheruser 1.2.3.6
7. anotheruser 1.2.3.4

我想获得所有带用户名的ips列表。查询可能如下所示:

select username, ip from client_logs where ip is unique

我想要这样的输出:

user 1.2.3.4
user 2.3.4.5
user 1.2.3.5
anotheruser 1.2.3.6
anotheruser 1.2.3.4

我已经尝试通过select distinct来做到这一点,但我只有ips或ip-user。我试过的查询是:

SELECT DISTINCT ip, username
FROM client_logs
ORDER BY username

2 个答案:

答案 0 :(得分:3)

USE GROUP BY

SQL Fiddle Demo

SELECT username, ip
FROM client_logs
GROUP BY username, ip
ORDER BY username, ip

修改

我也尝试了你的第一个解决方案并且正常工作

Only distinct DEMO

SELECT distinct username, ip
FROM client_logs
ORDER BY username, ip

答案 1 :(得分:-2)

我通过以下查询解决了这个问题:

SELECT username, ip
FROM client_logs
GROUP BY ip
ORDER BY username, ip