1

我已经在这个问题上做了一些功课,我很确定它会涉及到自己加入一张桌子,但我还没有完全做到。

我有一个带有“帖子”表的论坛。它存储论坛上每个帖子的 ipaddress、userid、userid 和 postid。

我正在尝试获取一个我可以每周运行的查询,以便向我输出在此期间已被多个用户 ID 使用的 IP 地址列表 - 以及多个用户 ID 使用相同 IP 地址的所涉及的 postid。

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

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

但它返回了许多不必要的行 IMO,例如它以两种方式返回每个重复项 - 既好像 userid 1 使用了 userid 2 的 ipaddress,又好像 userid2 使用了 userid1 的地址。

日期线是几天前的。

理想情况下,我只想按顺序查看 IP 地址列表以及重复的用户名并为每个帖子重复,这样我就可以使用 PHP 并制作一份报告,输出 IP 地址、使用它的用户名(用户 ID) ,以及他们创建的 postid。

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

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

为了清楚起见,我对 PHP 很好,这只是我需要帮助的查询。

4

1 回答 1

8

这应该给你一个开始:

SELECT ipaddress, GROUP_CONCAT(DISTINCT username)
FROM qvb_post
GROUP BY ipaddress
HAVING COUNT(DISTINCT username) > 1
ORDER BY COUNT(DISTINCT username) DESC

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

于 2012-05-05T19:22:43.543 回答