如何通过FQL MuliQuery运行某种“for”语句

时间:2011-09-17 01:56:17

标签: php facebook fql.multiquery

基本上,

我有一个功能贯穿用户的整个朋友列表,然后挑选每个朋友的最后状态帖子。现在,对于拥有1500多个朋友甚至300多个朋友的人来说,快速加入的时间加起来。即通过约100名朋友运行65秒

所以我认为,通过MultiQuery批量运行会更好。这是基本概念:

$mq = array(
    "query1"=>"SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 5",
    "query2"=>"SELECT actor_id, message, created_time, permalink FROM stream WHERE source_id IN (SELECT uid2 FROM #query1) AND actor_id IN (SELECT uid2 FROM #query1)"
);

所以这实际上很有效,但query2输出所有用户的新闻提要;如果我将其设置为"LIMIT 1",那么整个query2的设置将限制为1个输出而不是每个用户1个输出。

非常感谢任何想法或建议。

1 个答案:

答案 0 :(得分:0)

如果您只需要当前状态,则只需获取用户表的“status”字段即可。即
    SELECT uid,status FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = me())

但是,如果您严格要求用户的所有朋友的最新状态,则会有所不同。但它会快得多。

希望这会有所帮助