2013-06-20 21 views
1

我有一個返回誰對後評論人列表中的FQL查詢: -如何使用第一個查詢中的用戶標識在查詢中創建FQL查詢?

選擇時間,fromid,喜歡,post_id_cursor從評論,其中POST_ID =「331288023558058_592220760798115」 ORDER BY時間DESC LIMIT 5000

我想要做的是包括這個查詢中的另一個查詢返回的人的詳細信息,留下意見

SELECT性別,FIRST_NAME,middle_name,姓氏,用戶名,語言環境,PROFILE_URL,pic_square_with_logo FROM用戶WHERE uid = {離開評論的人的來源}

是否可以組合查詢,以便在單個查詢中獲取所有數據?任何想法如何?

感謝

喬納森

回答

1

使用multiqueries

commentquery = 「SELECT時間,fromid,喜歡,post_id_cursor從評論,其中POST_ID = '331288023558058_592220760798115' ORDER BY時間DESC LIMIT 5000」

userquery =選擇性別,FIRST_NAME,middle_name,姓氏,username,locale,profile_url,pic_square_with_logo FROM user WHERE uid =(SELECT fromid FROM #commentquery)

對於用戶多個FQL查詢,您需要對數組中的查詢進行json_encode。 ?用於/ FQL Q =參數

所以要規定:

$queries = []; 
$queries['comments'] = "SELECT time, fromid... "; 
$queries['users'] = "SELECT sex, ... WHERE uid IN (SELECT fromid FROM #comments)"; 

$fql = json_encode($queries); 
// then using curl or whatever 
// (multiqueries don't work with PHP sdk's $facebook->api() i believe) 
GET http://graph.facebook.com/fql?q=$fql 
+0

感謝您的回答,我怎麼json_encode查詢,我正在使用PHP。如果你能幫助我把它放在一起,那將是非常棒的。謝謝 –

+0

這就是我到目前爲止$ query = urlencode(「SELECT time,fromid,likes,post_id_cursor from comment where post_id ='331288023558058_592220760798115'ORDER BY time DESC LIMIT 5000」); $ url = $ baseurl。$ query。$ access_token; $ result = curl_load($ url); $ commentids = json_decode($ result); –

+0

我的例子基於PHP。所以最簡單的方法是將這兩個查詢放在一個關聯數組中,然後在該數組上執行json_encode() – juuga

1

使用多查詢

graph.facebook.com/fql?q={"query1":"SELECT time, fromid, likes, post_id_cursor from comment where post_id = '331288023558058_592220760798115' ORDER BY time DESC LIMIT 5000","query2":"SELECT sex, first_name, middle_name, last_name, username, locale, profile_url, pic_square_with_logo FROM user WHERE uid IN (SELECT fromid FROM #query1)"}

https://developers.facebook.com/docs/technical-guides/fql/