如果我有一张表,如:
memberid,time,ip
他登录的所有ip的ip历史记录以及他们登录的相关帐户ID及其各自的IP。
无论如何只有一个查询,您可以检查表中是否有任何已登录> 1
帐户的IP,如果有,那么memberid's
该IP是否已登录到SELECT DISTINCT memberid,ip FROM iphistory
我知道如何使用以下帐号将其限制为唯一的IP:
{{1}}
但不确定如何检查memberid共享相同的IP。
修改:已更新,以便更清晰。
答案 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;
投票最能帮助您的答案!