これが私のコードです。動作していますが、非常に遅いです:
$graded = R::getAll("SELECT posts.id, posts.discussion, rating.rating, rating.itemid
FROM uv_forum_posts posts
JOIN uv_rating rating ON ( posts.id = rating.itemid )
WHERE posts.discussion = :discussion_id
GROUP BY posts.userid",
array(':discussion_id' => $discussion['id']));
$total = R::getAll("SELECT posts.userid
FROM uv_forum_posts posts
WHERE posts.discussion = :discussion_id
GROUP BY userid",
array(':discussion_id' => $discussion['id']));
$percentages[] = count($graded) / count($total) * 100;
$graded
評価のあるすべての行を表します。
$total
採点の有無にかかわらず、すべてのユーザーの参加を表します。
結果のセットの数値のみに関心があります。これら 2 つの MySQL 呼び出しを、2 つの数値graded
とを返す単一の呼び出しに結合できますtotal
か?