-1

我的网站就像 imdb 它是一个电影数据库,用户可以将电影添加到那里的等待列表中...我有 2 个表..一个用于存储电影详细信息,另一个用于存储将电影制作到他的等待列表中的人...

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 回答