Join 经营一个;加入;类似于FQL,用于在新闻提要帖子中获取用户名

Join 经营一个;加入;类似于FQL,用于在新闻提要帖子中获取用户名,join,facebook-fql,feed,Join,Facebook Fql,Feed,我正在使用以下FQL语句,尝试使用FQL获取特定用户的新闻提要中的所有帖子: SELECT post_id, actor_id, target_id, message, created_time, updated_time, permalink, description FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND i

我正在使用以下FQL语句,尝试使用FQL获取特定用户的新闻提要中的所有帖子:

SELECT post_id, actor_id, target_id, message, created_time, updated_time, permalink, description 
FROM stream 
WHERE filter_key in 
(SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed')
AND is_hidden = 0 AND created_time > xxx
但是我需要在我的新闻提要中发布帖子的每个用户的用户名(名字和姓氏)(与“actor_id”匹配的用户名)

似乎我无法在FQL中使用join操作,我也不想对我的新闻提要中的每一篇文章都运行select操作(可以是以下形式的几十个额外调用): “选择uid,用户名称,其中uid=”)


有没有办法克服这个问题?

您需要使用获取两个结果集:第一个来自流,第二个来自用户。然后,对于第一个结果中的每个结果,在第二个结果中查找
actor\u id

您的查询应该如下所示:

 NSString *query =
    @"{"
    @"'friends':'SELECT post_id,actor_id,target_id,message,created_time, likes, comment_info FROM stream WHERE source_id IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND created_time > 1  ORDER BY created_time DESC LIMIT 50',"
    @"'friendinfo':'SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT actor_id FROM #friends)',"
    @"}";
希望这会有所帮助。:)