我有以下查询从上周的用户朋友中选择状态:
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个朋友,每个都有一些状态。因此,我没有一些被过滤的大型结果集。
之前有没有人碰到这样的事情?我错过了什么吗?