2012-03-21 23 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' 
) 
相关问题