2012-03-21 40 views
1

我試圖從照片表中獲取照片,但只是用戶喜歡的照片。從當前用戶已經喜歡的照片表中獲取照片,使用FQL

照片表中有一個字段叫做like_info,它返回一個包含3個字段的對象,其中一個是user_likes:表示當前會話用戶是否喜歡這張照片(我所需要的)。 https://developers.facebook.com/docs/reference/fql/photo/

我可以檢索這個信息(like_info-> user_likes),但我不能夠在查詢中使用它。我試過

SELECT pid, owner, src, like_info FROM photo WHERE pid IN (433368913233690121,433368913233456540) AND like_info.user_likes=1 

這給我一個錯誤「user_likes不是like_info標量的成員」。

我知道這將工作,如果like_info是一個數組,但我想知道如何做到這一點,作爲一個對象。

感謝

回答

0

您可能必須與表更好的運氣。即來到我的腦海

SELECT object_id FROM like WHERE user_id=me() AND object_type="photo" 
+0

是啊,這是真的,我可以實現與如表此相同的目標(我投票如果我的聲望允許我,你就起來了)。但我真的很有興趣能夠在Where子句中使用這個** like_info **,它可以非常有用。 – 2012-03-21 11:11:02

2

首先是從like只是嵌套查詢和photo表:

SELECT pid, owner, src, like_info FROM photo WHERE pid IN (
    SELECT object_id FROM like WHERE user_id=me() AND object_type="photo" 
) 

不幸的是,我發現了一個bug(FQL results from like table have wrong object_type),這樣做上述沒用(讓我們希望這將查詢迅速解決)。

幸運的是另一種方式來實現與另一個相同的結果(有點複雜)查詢:

SELECT pid, owner, src, like_info FROM photo WHERE object_id IN (
    SELECT id FROM object_url WHERE id IN (
    SELECT object_id FROM like WHERE user_id=me() 
) AND type='photo' 
) 
相關問題