私は、あるテーブルに映画を、別のテーブルにmovieRatingsを設定したmySqlデータベースを照会するphpファイルを持っています。特定の映画が持っている「5つ星」、「4つ星」などの評価の数を数えたい。私のクエリは機能しますが、検索したい映画ごとに movieRatings テーブル全体を 5 回通過することがわかっているため、非常に低速です。
私のクエリ:
$sql = "SELECT *
FROM MOVIE_INFO,
(SELECT count(ratingValue) as star5 FROM MOVIE_RATINGS2 WHERE itemID=$b[0] AND ratingValue = 5 ) SUB,
(SELECT count(ratingValue) as star4 FROM MOVIE_RATINGS2 WHERE itemID=$b[0] AND ratingValue = 4 ) SUB1,
(SELECT count(ratingValue) as star3 FROM MOVIE_RATINGS2 WHERE itemID=$b[0] AND ratingValue = 3 ) SUB2,
(SELECT count(ratingValue) as star2 FROM MOVIE_RATINGS2 WHERE itemID=$b[0] AND ratingValue = 2 ) SUB3,
(SELECT count(ratingValue) as star1 FROM MOVIE_RATINGS2 WHERE itemID=$b[0] AND ratingValue = 1 ) SUB4
WHERE movieID = $b[0]";
その特定の映画の映画評価からサブセットを一度引き出すことができれば、非常に高速になると思いますが、その方法を思い出せません。