2014-01-18 43 views
2

我試圖獲取用戶新聞流,並從新聞流帖子的actor id獲取配置文件的名稱。FQL Multiquery總是失敗(查詢作爲單個查詢工作)

這是查詢我使用

NSString *fqlString = @"{" 
@"'query0':'SELECT post_id, actor_id, message, created_time FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0 ORDER BY created_time DESC LIMIT 5'," 
@"'query1':'SELECT id, name, pic_square FROM profile WHERE id IN (SELECT uid2 FROM #query0)'," 
@"}"; 

這將返回一個OAuth例外它說:"(#601) Parser error: unexpected '{' at position 0."

事實上,它沒有任何意義,因爲query0和QUERY1作爲單一的查詢工作都。

任何人都可以幫助我解決這個問題。

回答

2

您有:

  1. 一個synthax錯誤:type='newsfeed'必須type="newsfeed",因爲你的查詢撇號'後已經開始。
  2. uid2無法找到#query0,因爲字段uid2不存在stream表中。您最有可能需要actor_id

這裏是你的FQL查詢更正:

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

Try it here

+0

就像一個魅力!謝謝你! – arnoapp