1

好的,所以我的任务是找到其中包含特定演员的最新版本。有多个表,一个包含基本电影信息(标题,发行年份),一个包含演员姓名及其姓名 Starid,另一个包含他们所扮演的电影编号,包含 Movienum,Starid。

基本上我已经完成了 75% 的工作,并且我试图只返回一部特定演员最新的电影。这是我到目前为止的查询

  SELECT MovieTitle, Datereleased
  FROM MovieList
  WHERE Movienumber IN (SELECT Movienumber FROM ActsIn Where Starids IN (SELECT Starids FROM Stars       WHERE Familyname = 'Tarintino'))

现在,当我运行它时,我会得到 3 行 3 部电影及其相关信息。第一列是电影名称,第二列是 Yearreleased。我可以对查询执行什么操作以仅返回最新电影?(例如 MAX Yearreleased)

4

1 回答 1

4

这是代码,现在研究它并查找所有您不知道的语法:

Select top 1 MovieTitle, DateReleased From MovieList
Inner Join
ActsIn
on ActsIn.MovieNumber = MovieList.MovieNumber
Inner Join
Stars
on Stars.Starids = ActsIn.StarIds
Where
Stars.FamilyName = 'Tarantino'
ORDER BY DateReleased DESC

这是获取所有演员的所有最新版本列表的另一种方法:

    select Stars.*, MovieTitle, DateReleased From MovieList inner join (
    Select MAX(DateReleased) AS DateReleased, StarIDs From MovieList
        Inner Join
        ActsIn
        on ActsIn.MovieNumber = MovieList.MovieNumber
    Group by StarIDs )  lastMovie on lastMovie.DateReleased = MovieList.DateReleased
    Inner join Stars on Stars.StarIDs = lastMovie.starIDs
Where FamilyName = 'Tarantino'
于 2013-09-11T14:42:35.243 回答