-1

私のサイトはimdbのような映画データベースであり、ユーザーは待機リストに映画を追加できます...私には2つのテーブルがあります..1つは映画の詳細を保存するためのもので、もう1つは彼の待機リストに映画を作成する人を保存するためのものです...

Movie table : ID,MOVIE NAME,PLOT,RELEASE_DATE,ACTORS
awaiting Table : F_ID(just unique ID),U_ID(user id),MOVIE_ID(same as first tables ID)

今、私はリリースされる予定のトップ6の最も待っている映画を手に入れる必要があります...

待機中のテーブルに10個の同じmovie_id行があります。最初のテーブルからのIDの映画の詳細をリストします(上位5本の映画など)。別のことは、行をフェッチするときに、映画のリリース日が今日の日付よりも大きい必要があることです。 ..リリース日が今日の日付よりも短いかどうかを表示したくない..これは、今後最も待望の映画を表示するだけでよいことを意味します。

前もって感謝します

4

2 に答える 2

1

結合のみを使用する場合は、次のようにしてみてください。

SELECT m.MOVIE_NAME, COUNT(*) as FavoriteCount
FROM Favorites f
INNER JOIN Movie m ON m.ID = f.MOVIE_ID 
WHERE m.RELEASE_DATE > CURDATE()
GROUP BY f.MOVIE_ID
ORDER BY FavoriteCount DESC LIMIT 6;
于 2012-11-14T17:00:32.757 に答える
0

これで始められると思います。必要に応じて微調整します。

SELECT * 
FROM Movie,
(
SELECT count(*) as favVotes, movie_ID
FROM Favorites, Movie
WHERE U_ID = [usersID]
AND Favorites.movie_id = Movie.ID
AND RELEASE_DATE > Now()
GROUP BY Movie_ID, U_ID
) favs
WHERE favs.movie_id = Movie.ID
ORDER BY favVoted DESC
LIMIT 5
于 2012-11-14T16:43:36.773 に答える