0

友達のプロフィール写真の作成日を取得するにはどうすればよいFQL multi-queryですか?

私は以下のクエリを書きました:

SELECT src_small, src_big, src FROM photo WHERE src IN
(SELECT pic_square, pic_small, pic_big, pic FROM user WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me()) )

しかしそれは言う:

{

  "error": {
  "message": "Your statement is not indexable. The WHERE clause must contain an indexable column.    Such columns are marked with * in the tables linked from   http://developers.facebook.com/docs/reference/fql ", 
  "type": "NoIndexFunctionException", 
  "code": 604
 }
}

前もって感謝します。

4

1 に答える 1

2

アルジュナ・デル・トーソのコメントより:

「インデックス可能」とマークされている場合にのみ、WHERE 句で列を使用できます。

いいえ、それは完全に正しくありません。

where 句には少なくとも 1 つのインデックス可能な列が必要です。それができたら、他のインデックスのない列を使用して、結果をさらに制限することができます。


ユーザーの現在のプロフィール写真は常にプロフィール写真アルバムのアルバム カバー写真であるため、それを使用して友人のプロフィール写真を取得し、それを使用してテーブルから必要な情報を選択できます。object_idphoto

SELECT owner, src_small, created FROM photo WHERE object_id IN (
  SELECT cover_object_id FROM album WHERE owner IN (
    SELECT uid1 FROM friend WHERE uid2 = me()
  ) AND name = 'Profile Pictures'
)
于 2012-08-30T14:56:14.510 に答える