-1

Android アプリの場合、FQL を使用して Facebook で特定のユーザー (ユーザー ID を使用) の情報を取得し、ユーザーの高品質の画像も取得しようとしています。

つまり、「user」テーブルと「photo」テーブルの両方を使用する必要があります。

現在、クエリは次のとおりです。

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

1 つ目は指定されたユーザーのすべての情報を返し、2 つ目は 1 人のsrc_bigユーザーの を返します。内部結合を実行し、両方を単一のクエリで実行することは可能ですか?

編集:

FQLの内部結合はまだ不可能のようです。ただし、これについても質問したいことがあります。最初の FQL ステートメントで使用されているように、2 番目の FQL ステートメントを変更して複数の結果を表示するにはどうすればよいですか?

4

2 に答える 2

0

はい、FQLマルチクエリでは、結果でユーザーごとに1つのアイテムを選択することはできません。2番目のクエリでは、アイテムが1つだけ表示されます。FQLですべてのユーザーからすべての写真を取得し、アプリでそれらをフィルタリングするか、ユーザーごとに個別のAPI呼び出しを行う必要があります。

これは、フィールド展開を使用してGraphAPIで実行できます。クエリエンドポイントは次のようになります。

 /?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 (正しい場合) を使用して、2 つのテーブルを結合できます。

于 2012-10-14T10:51:04.853 に答える