MySQL Query将查找用户使用相同IP地址的多个用户名

Joe*_* D. 1 php mysql unique ip-address

我已经在这个问题上做了一些功课,我很确定它会涉及加入一张桌子,但我还没到那里.

我有一个带有"帖子"表的论坛.它存储论坛上发布的每个帖子的ipaddress,用户名,用户ID和postid.

我试图获得一个查询,我可以每周运行一次,这将输出我在此期间已被多个用户ID使用的ipaddresses列表 - 并且postids涉及多个用户ID使用相同的ipaddress.

到目前为止,我从其他人的类似问题中得到了这个:

SELECT t1.userid,t2.userid, t1.username, t2.username, t1.ipaddress, t2.ipaddress, t1.postid, t2.postid
FROM qvb_post t1
INNER JOIN qvb_post t2 ON t1.ipaddress=t2.ipaddress AND t1.userid!=t2.userid
WHERE 
t1.dateline > 1335897698 AND t2.dateline > 1335897698
Run Code Online (Sandbox Code Playgroud)

但它返回了许多不必要的行IMO,例如它返回每个重复的方式 - 两者都好像userid 1使用了userid 2的ipaddress,再次就像userid2使用了userid1的地址一样.

日期线是几天前的.

理想情况下,我想按顺序查看重复用户名的ip地址列表,并为每个帖子重复,这样我就可以使用PHP并生成一个输出IP地址的报告,使用它的用户名(userids) ,以及他们创造的postids.

我知道有两个人拥有相同的IP地址有很多正当理由,请放心,不会因为出现在本报告中而对任何人采取严厉的行动.

提前感谢您提供的任何帮助.

为了清楚我对PHP很好,它只是我需要帮助的查询.

Mar*_*ers 6

这应该给你一个开始:

SELECT ipaddress, GROUP_CONCAT(DISTINCT username)
FROM qvb_post
GROUP BY ipaddress
HAVING COUNT(DISTINCT username) > 1
ORDER BY COUNT(DISTINCT username) DESC
Run Code Online (Sandbox Code Playgroud)

它显示了多个不同用户名使用的IP地址,并为每个IP地址提供了逗号分隔的用户名列表.如果您愿意,可以将其扩展为包含帖子ID.