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'
确保表上的索引与前面提到的一样正确。