2012-12-12 118 views
3

這FQL試圖爲我的朋友擷取相片FQL:選擇朋友的照片

[1]

{"query1":"SELECT owner, object_id, src_big FROM photo 
WHERE owner IN (SELECT uid2 FROM friend WHERE uid1=me())"} 

提供思考了幾秒鐘後,這個錯誤響應...

{"error_code":1,"error_msg":"An unknown error occurred"} 

但這個查詢爲我的朋友抓取相冊將工作並返回相冊信息的JSON對象

[2]

{"query1":"SELECT aid, owner, name FROM album 
WHERE owner IN (SELECT uid2 FROM friend WHERE uid1=me())"} 

爲什麼[2]可以工作,但不是[1]?

回答

0

確實,這很奇怪。但是這個可以做你想做的:

SELECT owner, object_id, src_big 
FROM photo WHERE aid IN (
    SELECT aid FROM album WHERE owner in (
      SELECT uid2 FROM friend WHERE uid1=me() 
    ) 
) 

與分頁玩得開心!

+0

爲什麼2級查詢的作品,但1子查詢不使用多查詢? –

0

查詢[1]返回所有照片對象,而查詢[2]返回相冊對象。大部分時間的照片數量要比專輯數量大得多。因此,如果每個朋友都有10張相冊,每張相冊都有100張照片,則查詢大小會增加,並且由於FQL不使用任何形式的分頁,因此您一次只能完成一次。

考慮將來或批次極限