开发者

FQL statement to get a photo of two people (Query not indexable error)

SELECT pid FROM photo WHERE me() and $otherPerson IN ( SELECT subject FROM photo_tag WHERE pid=pid ) ORDER BY created DESC LIMIT 1

I'm trying to get a photo that has bo开发者_如何学Pythonth users tagged in it ($otherPerson is replaced with a user id). This query returns:

604 Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http://wiki.developers.facebook.com/index.php/FQL_Tables

Any ideas on how I can make this work?

UPDATE:

I currently have this query working but I feel as though there's a better way to go about.

SELECT pid, src_big FROM photo
 WHERE pid IN (
                 SELECT pid FROM photo_tag 
                 WHERE subject=$otherGuy
                 AND pid in (
                                SELECT pid FROM photo_tag WHERE subject=me()
                             )
               )


This should do the trick.

SELECT pid, src_big
FROM photo
WHERE pid IN(
    SELECT pid  
    FROM photo_tag
    WHERE subject = me()
) 
AND pid IN(
    SELECT pid  
    FROM photo_tag
    WHERE subject = <friend_user_id>
)


What about:

  SELECT pid
    FROM photo
   WHERE me() IN (SELECT subject
                    FROM photo_tag
                   WHERE pid=pid)
     AND $otherPerson IN (SELECT subject
                            FROM photo_tag
                           WHERE pid=pid)
ORDER BY created DESC
   LIMIT 1

Also, what pid=pid means?


I tried the other solutions and ran into a problem - If your friend has set his privacy settings to disallow apps from accessing his photos, then the following FQL query will return an empty table:

"SELECT pid FROM photo_tag WHERE subject = <friend_user_id>"

I solved this by using the following multiquery instead:

"query1" : "SELECT subject, pid FROM photo_tag WHERE pid IN (SELECT pid FROM photo_tag WHERE subject=me())"
"query2" : "SELECT pid FROM #query1 WHERE subject= <friend_user_id>"
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜