1
我想弄清楚是否可以使用FQL多查詢而不是多個API調用進行操作。FQL多查詢優化
這裏是我的代碼:
var queries : Object = {
"user_list":"SELECT uid2 FROM friend WHERE uid1 = "+uid
,"event_id":"SELECT eid, start_time, end_time, location, pic, name FROM event
WHERE eid IN (SELECT eid FROM event_member
WHERE uid IN (SELECT uid2 FROM #user_list)
AND rsvp_status='attending') AND start_time > " + nowSecs + "
AND start_time < " + (nowSecs + 2500000) + " ORDER BY start_time ASC LIMIT 20"
"user_name":"SELECT name FROM user
WHERE uid IN (SELECT uid FROM event_member
WHERE eid IN (SELECT eid FROM #event_id)
AND uid IN (SELECT uid2 FROM #user_list) AND rsvp_status='attending')"
};
目前有太多的結果是在我的「事項標識」查詢牽強,我目前得到的事件的完整列表存儲在「USER_LIST」每個人查詢,我最好只想爲每個人獲取1個事件,然後對這些結果進行排序。我似乎無法做到這一點,使用LIMIT我總共只得到1個結果,但不是每個人。
此外,更重要的是,我只希望'user_name'查詢中的每個事件有一個結果,此時我有時會得到多個參與同一事件的成員,並且這會導致問題,因爲我無法匹配一旦收到結果,用戶就會用相應的事件命名。我也注意到,如果同一用戶要去 'event_id'中包含兩個不同的事件,結果中只有他們名字的一個實例,這也是不可取的。
目前,我有20個API調用,一旦我有'event_id'結果,然後對返回的數據進行排序,這實際上是減慢我的應用程序。
任何人都可以建議我如何能夠實現我想要的,從而優化查詢嗎?
對不起,很長的文章,但這已經越來越我的山雀好幾天!
感謝
不幸的是,這並沒有什麼幫助,因爲facebook FQL語言並沒有包含所有這些命令。我以某種方式解決了這個問題,但我不記得那是怎麼回事,那是在二月! – x0b 2010-11-26 10:50:57