获取已在ip日志记录表中使用相同IP登录的帐户

时间:2014-12-21 07:13:43

标签: mysql sql

如果我有一张表,如:

memberid,time,ip

他登录的所有ip的ip历史记录以及他们登录的相关帐户ID及其各自的IP。

无论如何只有一个查询,您可以检查表中是否有任何已登录> 1帐户的IP,如果有,那么memberid's该IP是否已登录到SELECT DISTINCT memberid,ip FROM iphistory

我知道如何使用以下帐号将其限制为唯一的IP:

{{1}}

但不确定如何检查memberid共享相同的IP。

修改:已更新,以便更清晰。

3 个答案:

答案 0 :(得分:1)

这个问题可以表达为:"共享同一个ip"的成员。确定类似的东西:

select ip
from T
group by ip
having count(distinct memberid) > 1

可以使用。如果您想要与这些ip关联的成员,您可以将原始表加入:

select distinct x.memberid, y.ip
from T as x
join (
    select ip
    from T
    group by ip
    having count(distinct memberid) > 1
) as y
    on x.ip = y.ip

由于成员可以多次从一个IP登录,因此我添加了不同的内容。

答案 1 :(得分:0)

你有一个成员“myuser”的ip地址说“192.0.100.1”,你想检查一下所有使用相同ip登录系统的成员,并检查是否有其他成员使用相同的ip登录,那么你可以使用where子句如下:

SELECT DISTINCT memberid
FROM iphistory
WHERE ip = "192.0.100.1"
AND   memberid != 'myuser'

答案 2 :(得分:0)

你可以使用groupby SELECT DISTINCT memberid,ip FROM iphistory GROUP BY ip;
投票最能帮助您的答案!