对于Android应用,我正在尝试使用FQL在Facebook上获取特定用户的某些信息(使用其用户ID),并获得用户的高质量图像。
这意味着我必须同时使用“用户”表和“照片”表。
目前,查询是:
SELECT first_name, last_name, status, current_location, uid, pic_square, pic_big, website, work, email, contact_email, current_location, sex, birthday_date
FROM user
WHERE uid in (%s) order by name
SELECT src_big,owner
FROM photo
WHERE aid IN (SELECT aid FROM album WHERE owner=%s AND type=\"profile\") LIMIT 1
第一个返回指定用户的所有信息,第二个返回单个用户的src_big
。是否可以进行内部联接并在单个查询中执行它们?
编辑:
似乎FQL仍然无法实现内连接。但是,我仍然想问一下:如何更改第二个FQL语句以显示多个结果,如第一个FQL语句中所使用的那样?
答案 0 :(得分:0)
是的,FQL多重查询不允许您在结果中为每个用户选择一个项目。您的第二个查询只会给您一个项目。您需要从FQL中获取所有用户的所有照片,然后在您的应用中过滤它们,或者为每个用户单独调用API。
您可以使用field expansion使用Graph API执行此操作。您的查询端点将是:
/?ids=UID_1,UID_2,...,UID_n&fields=name,id,...,photo.limit(1)
由于您使用的是fields
参数,因此您需要在结果中单独声明所需的每个字段。
答案 1 :(得分:-2)
当然你可以加入两个表,使用user.uid = photo.owner(如果正确)作为绑定条件。