我有一张带有user_id和ip
的表
我想查找ip相同但用户名不同的记录。
答案 0 :(得分:1)
尝试此查询;
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;
答案 1 :(得分:0)
您可以将表连接到自身,以便查找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上使用此功能,以便更接近您想要的内容。