我有以下查询来选择上周用户朋友的状态:
SELECT status_id, uid, message, time from status where uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND time > 1366038021
(1366038021 是一周前我进行查询的时间)
这将返回 7 个结果,但它缺少我的一位朋友的两个最新结果(发生在我过滤时间之后。)如果我删除 time 子句,我会得到我缺少的两个结果,总共 9 个结果. 他们的时间是1366660761和1366662471,它们> 1366038021所以他们应该总是出现,但他们没有。如果我将子句更改为time > 0
它也会返回 9 个结果。如果我更改为,time > 1
我会得到一个空的结果集。如果我将其更改为time > 1366138021
我得到所需的 9 个结果...
现在,我阅读了许多其他帖子,解释了 FB 过滤结果的方式。我知道如果我在那里有一个限制 X,它会抓取 X 结果,通过可见性过滤并返回 Y 结果而不是 X。我看不出这里是怎么发生的。我对一件事没有限制(甚至将一个大量放入其中也不会改变任何事情。)另外,我为此使用了一个测试帐户,而且我只有 2-3 个朋友,每个朋友都有几个状态. 因此,我没有一些被过滤的大型结果集。
有没有人遇到过这样的事情?我错过了什么吗?