我有一张桌子,上面有500.000条记录,记录着Twitter更新。然后,我有了一个包含用户信息的表。

我基本上需要用户表中所有人员的Twitter记录。

我可以使用以下SELECT IN查询来做到这一点:

SELECT *
FROM STATUS WHERE twitterUserID
IN (
    SELECT twitteruserid
    FROM accountLink
)


但这显然很慢。

然后,我尝试通过联接进行操作,但是它仅显示7条记录。不知道为什么。

SELECT status . * , accountLink.userId, accountLink.twitterUserId
FROM status
JOIN accountLink
ON status.twitterUserId = accountLink.twitterUserId


有谁知道是什么原因导致这种现象以及如何解决?

最佳答案

尝试将其更改为此:

SELECT status.* , accountLink.userId, accountLink.twitterUserId
FROM status
LEFT JOIN accountLink
ON status.twitterUserId = accountLink.twitterUserId


我怀疑状态和帐户链接之间的所有记录都不匹配。进行左联接将选择每个status,而不管accountLink是否匹配。

关于sql - 内部联接仅返回7条记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4091428/

10-09 01:58