-1

对于 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 语句中使用的那样?

4

2 回答 2

0

是的,FQL 多查询不能让您在结果中为每个用户选择一项。您的第二个查询只会给您一个项目。您需要在 FQL 中从所有用户那里获取所有照片,然后在您的应用程序中过滤它们,或者对每个用户进行单独的 API 调用。

您可以使用 Graph API 使用字段扩展来执行此操作。您的查询端点将是:

 /?ids=UID_1,UID_2,...,UID_n&fields=name,id,...,photo.limit(1)

由于您使用的是fields参数,因此您需要在结果中单独声明所需的每个字段。

于 2012-10-15T15:04:45.470 回答
-2

当然可以,加入两个表,使用 user.uid = photo.owner(if correct) 作为绑定条件。

于 2012-10-14T10:51:04.853 回答