FQL Multiquery writing join queries

2019-03-03 11:29发布

问题:

Simply put. I need help building an FQL multi query request that will do the following:

  1. Grab the UIDs in from the logged in user's friends list then,
  2. Use those IDs to grab all comments and messages (from stream) from the last two weeks
  3. Finally, join those results with there usernames

Heres the queries I have so far:

[1] GRAB_UIDs:

SELECT uid2 FROM friend WHERE uid1 = me()

[2] GRAB_STREAM (missing the 2 week part and possibly wrong altogether):

SELECT type, created_time, post_id, comments, actor_id, target_id, message 
FROM stream 
WHERE filter_key IN 
       (SELECT filter_key FROM stream_filter WHERE uid = me()) 
AND actor_id IN 
       (SELECT uid2 FROM friend WHERE uid1 = me())
)';

[3] GRAB_USRNAMES:

SELECT uid, name, username, pic_square, current_location, profile_url 
FROM user WHERE uid IN 
       (SELECT uid2 FROM friend WHERE uid1 = me())

I could really use a master at making these kind of requests and I greatly appreciate the help.

回答1:

{
    "query1":"SELECT uid2 FROM friend WHERE uid1 = me()",
    "query2":"SELECT type, created_time, post_id, comments, actor_id, target_id, message FROM stream WHERE filter_key IN (SELECT filter_key FROM stream_filter WHERE uid = me()) AND actor_id IN (SELECT uid2 FROM #query1)",
    "query3":"SELECT uid, name, username, pic_square, current_location, profile_url FROM user WHERE uid IN (SELECT uid2 FROM #query1)"
}

You can also see the results from the Graph API Explorer at:

https://developers.facebook.com/tools/explorer?fql={%22query1%22%3A%22SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%20%3D%20me%28%29%22%2C%22query2%22%3A%22SELECT%20type%2C%20created_time%2C%20post_id%2C%20comments%2C%20actor_id%2C%20target_id%2C%20message%20FROM%20stream%20WHERE%20filter_key%20IN%20%28SELECT%20filter_key%20FROM%20stream_filter%20WHERE%20uid%20%3D%20me%28%29%29%20AND%20actor_id%20IN%20%28SELECT%20uid2%20FROM%20%23query1%29%22%2C%22query3%22%3A%22SELECT%20uid%2C%20name%2C%20username%2C%20pic_square%2C%20current_location%2C%20profile_url%20FROM%20user%20WHERE%20uid%20IN%20%28SELECT%20uid2%20FROM%20%23query1%29%22}