0

FQL マルチクエリに奇妙な問題があります

これは私のクエリです:

NSString *query =
        @"{"
        @"\"events_info\":\"SELECT name, description, pic_small, pic_big, eid, venue, location, start_time, end_time, timezone, update_time, not_replied_count, privacy, has_profile_pic, version, can_invite_friends, is_date_only, hide_guest_list, host, creator, all_members_count, attending_count, not_replied_count , declined_count, pic_cover FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND start_time > '2013-03-03T00:23:00' OR uid = me())\","
        @"\"event_venue\":\"SELECT name, type,page_id, location FROM page WHERE page_id IN (SELECT venue.id FROM #events_info)\","
        @"\"event_creator\":\"SELECT name, page_id, type FROM page WHERE page_id IN (SELECT creator.id FROM #events_info)\""
        @"}";

このクエリがうまくいかないことがあります...何が問題なのかわかりません。機能しない場合、3 番目のクエリ ( ) を削除すると、event_creatorすべてが機能します。

エラー:

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xaab6c50 {com.facebook.sdk:ParsedJSONResponseKey={
    body =     {
        "error_code" = 1;
        "error_msg" = "An unknown error occurred";
    };
    code = 500;
}, com.facebook.sdk:HTTPStatusCode=500}
4

1 に答える 1

1

最初のクエリでは、次のものを取得します。

  • イベント作成者のページ、
  • このイベントの会場のページです。

あなたが得るものは次のようになります:

{
    "venue": {
        "id": 421431217881031
    }, 
    "creator": 844413621
},

2番目のクエリでは、会場のページの情報を次のように取得しますWHERE page_id IN (SELECT venue.id FROM #events_info)。これは非常によくできています。なぜなら、実際にID会場の配列を管理する必要があるからです。venue

3 番目のクエリでは、creatorもう配列ではありません。これはページID(またはユーザーのものですが、フィルタリングされるので問題ありません) を表します。その場合、次のものをID直接取得できます。

WHERE page_id IN (SELECT creator FROM #events_info)

それ以外の

WHERE page_id IN (SELECT creator.id FROM #events_info).

于 2013-03-07T01:33:38.633 に答える