iplist表(id,username,ip,created)-存储每个用户的不同ip地址
我想找到所有和“angryuser”有相同IP地址的用户名
MySQL查询:

    SELECT  username,
        ip
FROM    `iplist`
WHERE   ip  IN (
                    SELECT  ip
                    FROM    iplist
                    WHERE   username='angryuser'
                )

如果我运行此查询,它将进入循环并杀死我的服务器:)
为什么?
更新:
执行计划如下:
id  select_type         table   type  possible_keys  key   key_len  ref   rows    Extra
1   PRIMARY             iplist  ALL   NULL           NULL  NULL     NULL  102757  Using where
2   DEPENDENT SUBQUERY  iplist  ALL   NULL           NULL  NULL     NULL  102757  Using where

最佳答案

你试过正常的内部连接吗

SELECT  p.username,
        p.ip
FROM    iplist p INNER JOIN
        iplist s ON p.ip = s.ip
WHERE   s.username='angryuser'

确保表上的索引与前面提到的一样正确。

10-04 11:20
查看更多