0

我正在尝试获取过去喜欢任何用户状态的朋友列表。我在下面有一个多查询可以执行此操作,但结果未按帖子分组。所以,我得到了所有喜欢这些帖子的朋友的列表,但我不知道哪些朋友喜欢哪些帖子。我知道我可以为每个状态运行一个单独的呼叫,但如果可能的话,我想在一个呼叫中执行此操作。有任何想法吗?

$queries = '{
    "statuses":"SELECT status_id FROM status WHERE uid=me()",
    "likes":"SELECT user_id FROM like where object_id IN ( SELECT status_id FROM #statuses )",
    "liker":"SELECT name, pic_small FROM user WHERE uid IN (SELECT user_id FROM #likes)"
}';
$param = array(
    'method' => 'fql.multiquery',       
    'queries' => $queries,       
    'callback' => '');       
$queryresults = $facebook->api($param);
4

1 回答 1

0

我原以为你可以这样做:

$queries = '{
    "statuses":"SELECT status_id FROM status WHERE uid=me()",
    "likes":"SELECT user_id, object_id FROM like where object_id IN ( SELECT status_id FROM #statuses )",
    "liker":"SELECT name, pic_small, uid FROM user WHERE uid IN (SELECT user_id FROM #likes)"
}';

然后在您的最后,您将拥有将每个映射status_id到 s 数组所需的所有信息name。它不像执行 SQL JOIN 那样干净或微不足道,但由于这不是一个选项,如果您想在一次 FQL 调用中获取所有数据,这是您可以做的最好的事情。

于 2012-12-16T19:49:59.810 回答