0
這裏是我的代碼是工作,但速度很慢:我可以在單個MySQL命令中激發兩條select語句並計算結果行嗎?
$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
代表所有用戶參與,無論是否被評分。
我只對結果集的數值感興趣,我可以將這兩個MySQL調用合併爲一次調用,返回兩個數字graded
和total
?
謝謝,這有助於加快查詢顯着。它還不是那裏。運行這個查詢我得到我想要的,但然後我需要將所有'TOTAL'全部添加到'$ total'中,並且所有'GRADED'都以PHP手動添加到'$ graded'中。有什麼辦法可以將這個簡單的添加到MySQL,所以它只是在查詢本身返回這些值?感謝您的時間和幫助! – sergserg 2013-05-07 13:38:55
@Serg不客氣。查看更新的答案和sqlfiddle。 – peterm 2013-05-07 17:07:50