0

過去にユーザーのステータスを高く評価した友達のリストを取得しようとしています。これを行うマルチクエリを以下に示しますが、結果は投稿ごとにグループ化されていません。そのため、投稿を高く評価したすべての友達のリストを取得しましたが、どの友達がどの投稿を高く評価したかわかりません。ステータスごとに個別の呼び出しを実行できることはわかっていますが、可能であれば1回の呼び出しでこれを実行したいと思います。何か案は?

$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を実行するほどクリーンでも些細なことでもありませんが、これはオプションではないため、1回のFQL呼び出しですべてのデータを取得する場合に実行できる最善の方法です。

于 2012-12-16T19:49:59.810 に答える