mysql - 获取ip日志表中使用相同ip登录的帐户

标签 mysql sql

如果我有一个表,例如:

memberid,time,ip

所有已登录的 IP 的 IP 历史记录以及他们登录时使用的关联帐户 ID 和各自的 IP。

是否可以通过单个查询来检查表中是否有任何 IP 已登录到 > 1 帐户,如果有,memberid 是什么 已登录该 IP。

我知道如何通过帐户将其限制为唯一的 IP:

SELECT DISTINCT memberid,ip FROM iphistory

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

编辑:更新以使其更加清晰。

最佳答案

问题可以表述为:“共享相同 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

我添加了distinct,因为一个成员(member)可以从一个ip多次登录。

关于mysql - 获取ip日志表中使用相同ip登录的帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27587436/

相关文章:

sql - Postgres 9.4 : fast way to convert color from hex to rgb representation

MySQL语句将密码保存到数据库?

sql - 如何避免出现游标以及其他方法?

sql - 用于终止与数据库的所有连接的脚本(超过 RESTRICTED_USER ROLLBACK)

php - 每次刷新表单时都会添加额外记录

php - 根据MySQL表数据减少变量的方法是什么?

c# - 需要有关 LINQ 查询左连接和多个字段的帮助

mysql - 使用 IN 子句和子查询进行极端查询优化

mysql - 如果重复则中止插入

java - 将两个表连接到一个列表中