0

我有 2 张桌子:twitter_followerstwitter_friends. 两个表都有很多列(iduser_idtwitter_id等)。对于单个user_id的两个表中的行数可以超过 100000 条记录。

我想通过以下方式从twitter_friendsof中检索记录:user

SELECT * 
FROM twitter_friends 
WHERE user_id=1 
AND twitter_id NOT IN (SELECT twitter_id FROM twitter_followers WHERE user_id=1)

此查询适用于少量数据,但任何人都可以帮助我获得大量数据(最好在几秒钟内)?

4

1 回答 1

0

MySql 的子查询性能非常糟糕。我建议使用 JOIN 语句。

喜欢:

Select Friends.*, Followers.twitter_id
from twitter_friends as Friends
LEFT JOIN twitter_followers as Followers
 on Friends.USER_ID = Followers.USER_ID
where friends.user_id=1 AND followers.twitter_id is null;
于 2012-10-26T20:21:58.657 回答