2015-03-25 99 views

回答

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附近玩這個,以接近你想要的東西。

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; 
+0

我想我可能過於粗略,但我真的不確定如何說出這個! – Gav 2015-03-25 15:21:35

+0

有兩個上述字段的表,其中一個表包含很多條目......用戶名...... Ip .....其中用戶名重複多次,ip也是如此。我試圖找到兩個用戶名是否使用相同的IP?上面的查詢導致語法錯誤 – Gav 2015-03-25 15:23:50

+0

@Gav,請在此提及您的錯誤查詢。 – 2015-03-25 20:51:38

相關問題