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