2012-06-30 75 views
0

進出口使用下面的語句來抓取我已接受邀請的所有事件:Facebook的FQL子查詢

NSString *eventQuery = @"SELECT eid, name, creator FROM event WHERE eid IN 
(SELECT eid FROM event_member WHERE uid = me() AND rsvp_status='attending')"; 

這工作完全,但現在我想創建者的名字了。由於創建者字段只是創建者的用戶標識符,所以我必須執行另一個子查詢。

有人可以幫助我嗎?

非常感謝你的時間!

回答

2

您需要發出一個FQL多查詢才能得到它。我不知道你是如何在目標C做到這一點,但FQL語法是:

{ 
    "user_events": 
     "SELECT eid, name, creator FROM event WHERE eid IN 
     (SELECT eid FROM event_member WHERE uid=me() and rsvp_status='attending')", 
    "event_creators": 
     "SELECT name, id FROM profile WHERE id IN 
     (SELECT creator FROM #user_events)" 
} 

你原來的問題被退回沒有「也許」事件是因爲rsvp_status='maybe'不正確。 rsvp_status='unsure'是正確的語法。

+0

我實際上糾正了可能不確定並在你回答之前刪除了Q的那部分,不過謝謝。我希望我不必爲此使用multiquery。你確定這不能用子查詢完成嗎? –

+0

不幸的是,是的。 FQL沒有'JOIN'。如果您需要從兩個表中獲取數據,則需要使用兩個查詢。 – cpilko

+0

Okey,給我一秒鐘來梳理Objective-C的正確語法,我會批准你的答案。 –