我正在重写所有旧的mysql-函数到准备语句(PDO)。我还尝试重写所有sql循环,使查询变得“智能”,因此不再需要sql-循环。但是这次,我不知道怎么做到这一点。
用于搜索使用过的ip地址的简单SQL:
SELECT ip FROM log_ip WHERE spelerID = :spelerID通常,我会对结果执行时间循环:对于找到的每一个ip地址,我都会执行一个新的sql搜索,以查找相同ip地址上的其他用户。
SELECT spelerID,naam FROM log_ip WHERE ip = :ip 我找不到一个解决方案来创建一个查询,找到用户,使用相同的ip地址?提前感谢您的帮助!
发布于 2015-02-05 17:32:24
您可以使用LEFT OUTER JOIN,在本例中,它也是“自连接”:
SELECT l1.ip, l2.spelerID, l2.naam
FROM log_ip l1
LEFT OUTER JOIN log_ip l2
ON l2.ip = l1.ip
AND l2.spelerID <> l1.spelerID
WHERE l1.spelerID = :spelerID现在,请注意,结果看起来与你可能习惯的略有不同。l1 ip值将重复。
您应该研究JOIN子句并循环应用程序中的结果,而不是循环查询。
https://stackoverflow.com/questions/28350289
复制相似问题