2013-02-13 48 views
1

我写了一个FQL查询来获取的朋友谁我标签的名称 -Facebook的API,通过他的ID获取朋友的名字

这是FQL查询这给我的朋友列表中的ID(它的工作原理):

选择所有者从照片WHERE OBJECT_ID IN(SELECT OBJECT_ID FROM photo_tag WHERE主题=我())

现在我想通过这个查询得到他们的名字:

SELECT name FROM user WHERE uid IN(SELECT owner FROM photo WHERE object_id IN(SELECT object_id FROM photo_tag WHERE subject = me()))

但是我没有得到名称的完整列表,并给出了这个错误 - “遗漏的类型错误:无法读取属性未定义的‘名’”

回答

0

您的查询可能会失败,因为一些由你内心的查询返回的owner的ID不属于用户。与profile表,而不是尝试:

SELECT name FROM profile WHERE id IN 
    (SELECT owner FROM photo WHERE object_id IN 
    (SELECT object_id FROM photo_tag WHERE subject=me())) 
+0

首先感谢乌尔快速重播,你的想法是好的,我没有得到任何错误了 - 可是,我还没有得到所有的ID从名字原来的列表,例如没有“选择名称从配置文件WHERE ID IN”我得到143 ID和我添加“选择名称从配置文件WHERE ID IN”我实际上得到36名,买我想我知道为什么 - 也许如果一个朋友在几张照片上给我贴上了几张标签,那它只算它几张? – HezHez 2013-02-13 19:48:00

+0

很有可能。您需要通过FQL获取这些信息并重新组合这两个数组。使用'/ me/photos?fields = id,from'通过图形API获取它更容易 – cpilko 2013-02-13 19:58:46

相关问题