select DISTINCT(user),host from logins where ip in (
SELECT ip FROM logins group by ip HAVING COUNT(user) > 1)
这很好用。
select DISTINCT(user),host,time from logins where ip in (
SELECT ip FROM logins group by ip HAVING COUNT(user) > 1)
通过添加时间列,它不再选择不同的用户并返回重复项。为什么这样做?只有当我添加整合器字段(例如id和时间)时才会发生这种情况。
该查询基本上将用户从登录表中提取出令人困惑的IP。一个用户不应该被拉多次。
答案 0 :(得分:5)
DISTINCT不是一个适用于每一行的函数,所有不同用户的时间都不相同,所以你不能使用distinct。
使用GROUP BY,并使用组函数(MAX,MIN,GROUP_CONCAT等)作为时间列。
答案 1 :(得分:1)
SELECT user,host,time
FROM logins
WHERE ip IN (SELECT ip FROM logins group by ip HAVING COUNT(user) > 1)
GROUP BY user