我的网站就像imdb它的电影数据库,用户可以将电影添加到那里等待列表... 我有两张桌子..一个用于电影细节存储,另一个用于存储谁在他等待列表中制作电影...
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部电影一样)..另一件事是在获取行时发布电影的日期应该更大比今天约会...不想显示发布日期是否小于今天的日期..这意味着只需要显示即将到来的最期待的电影..
提前致谢
答案 0 :(得分: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;
答案 1 :(得分: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