0
我有一个user_id表和ip
我想查找ip是相同的但用户名不同的记录。查找重复的记录,其中一个字段不相等
我有一个user_id表和ip
我想查找ip是相同的但用户名不同的记录。查找重复的记录,其中一个字段不相等
您可以将表加入自身以查找IP相同但用户名不同的条目。假设你的表称为db.users
,下面的查询会发现有一个以上的用户的所有IP地址:
SELECT DISTINCT `a`.`ip`
FROM `db`.`users` `a`
INNER JOIN `db`.`users` `b`
ON `a`.`ip` = `b`.`ip`
AND `a`.`user_id` != `b`.`user_id`
如果你想找到的所有用户对于这样的IP地址列表,你也可以用GROUP BY
聚集声明:
SELECT `a`.`ip`, GROUP_CONCAT(DISTINCT `a`.`user_id`)
FROM `db`.`users` `a`
INNER JOIN `db`.`users` `b`
ON `a`.`ip` = `b`.`ip`
AND `a`.`user_id` != `b`.`user_id`
GROUP BY `a`.`ip`
你可以在此SQL Fiddle附近玩这个,以接近你想要的东西。
试试这个查询;
select distinct t.user_id, t.ip
from table t inner join table x
on t.user_id <> x.user_id and t.ip=x.ip;
我想我可能过于粗略,但我真的不确定如何说出这个! – Gav 2015-03-25 15:21:35
有两个上述字段的表,其中一个表包含很多条目......用户名...... Ip .....其中用户名重复多次,ip也是如此。我试图找到两个用户名是否使用相同的IP?上面的查询导致语法错误 – Gav 2015-03-25 15:23:50
@Gav,请在此提及您的错误查询。 – 2015-03-25 20:51:38