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)\""
        @"}";

此查询有时不起作用...我不明白出了什么问题。不工作时,如果我删除第三个查询 ( 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
},

第二个查询中,您将获得场地页面的信息,如下所示:WHERE page_id IN (SELECT venue.id FROM #events_info)。这做得很好,因为您确实需要照顾ID场地venue阵列。

第三个查询中,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 回答