1

我有一个 FQL 查询,它返回对帖子发表评论的人员列表:-

SELECT time, fromid, likes, post_id_cursor from comment where post_id = '331288023558058_592220760798115' ORDER BY time DESC LIMIT 5000

我想做的是在此查询中包含另一个查询,以返回留下评论的人的更多详细信息

选择性别,名字,中间名,姓氏,用户名,语言环境,profile_url,pic_square_with_logo FROM user WHERE uid = {fromid of person leave comment}

是否可以组合查询以便我在单个查询中获取所有数据?有什么想法吗?

谢谢

乔纳森

4

3 回答 3

1

使用多重查询

commentquery = "选择时间、fromid、喜欢、post_id_cursor from comment where post_id = '331288023558058_592220760798115' ORDER BY time DESC LIMIT 5000"

userquery = 选择性别、名字、中间名、姓氏、用户名、语言环境、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
于 2013-06-20T18:34:08.450 回答
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/

于 2013-06-20T18:39:10.427 回答
0

您可能可以在这里找到答案:fql join; 我可以用 FQL 加入两个表吗?

您想将这两个查询与一个多查询结合起来。希望有帮助。

于 2013-06-20T18:31:55.037 回答