2013-12-17 19 views
0

我目前有2個FQL查詢,其中一個從newsfeed中檢索消息,另一個從他們的actor_id中檢索用戶uid和名稱。問題在於這些查詢是在單獨的請求中運行的,因此它們與彼此不同步。針對單個請求的FQL多查詢

我想將兩個查詢合併爲一個,這樣我就有了一個JSON對象,並且可以一次解析所有的數據。

我跟着這個問題作爲首發: FQL query to get the Immediate family (name, birthday and relationship)
不過,我一直無法弄清楚如何使我的查詢這項工作。

我的兩個查詢是: 字符串fqlQuery = 「SELECT POST_ID,CREATED_TIME,actor_id,消息FROM流WHERE filter_key在(SELECT filter_key FROM stream_filter WHERE類型= '新聞源' 和UID =我())ORDER BY CREATED_TIME」; (SELECT filter_key FROM stream_filter WHERE type ='newsfeed'AND uid = me())ORDER BY created_time)「;這個函數返回一個數組,

所以我真的想加入這兩個查詢,以便我從一個FQL查詢中獲得uid和name以及與該用戶相關的post_id和消息。

回答

0

這樣做:

{"query1":"SELECT post_id, created_time, actor_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE type = 'newsfeed' AND uid=me()) ORDER BY created_time", "query2":"SELECT id, name FROM profile WHERE id IN (SELECT actor_id FROM #query1)"} 

請使用個人資料表,而不是用戶表的,因爲第二個查詢很可能失敗(返回一些actor_id空的結果)。你的第一個查詢的actor_id可以是一個頁面id,但uid是指用戶,而不是頁面。

+0

偉大的答案謝謝!並感謝您的個人資料表提示,這也幫助我修復了另一個錯誤! –