在SQL中比较和检索数字

在SQL中比较和检索数字,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,演员、明星、电影是三张不同的桌子 我怎样才能让《马特·达蒙》的最新电影有电影名称和发行年份 我陷入了如何比较和获取最近一年的问题。这是一个基本的连接查询,带有order by和top子句(可能是limit或其他取决于数据库的内容): gname和fname代表什么?特别是,什么样的“fname”才是“Matt Damon”的“Damon” 编辑: 您可能正在使用另一个数据库。这可能会奏效: select top 1 m.title, m.yearreleased from movies m jo

演员、明星、电影是三张不同的桌子

我怎样才能让《马特·达蒙》的最新电影有电影名称和发行年份


我陷入了如何比较和获取最近一年的问题。

这是一个基本的连接查询,带有
order by
top
子句(可能是
limit
或其他取决于数据库的内容):

gname
fname
代表什么?特别是,什么样的“fname”才是“Matt Damon”的“Damon”

编辑:

您可能正在使用另一个数据库。这可能会奏效:

select top 1 m.title, m.yearreleased
from movies m join
     actsin ai
     on ai.movienum = m.movienum join
     stars s
     on ai.starid = s.starid
where gname = 'Matt' and fname = 'Damon'
order by m.yearreleased desc;

如果不是,您需要弄清楚您使用的是什么数据库。如果您正在为它编写SQL,这一点很重要。

您使用的是哪个数据库?我想是SQL2008,软件是SQLfire,谢谢老兄!可能是“名字”和“姓氏”@BrianRogers。非常感谢。我不记得见过一个名为“fname”的字段,它不是“first name”的意思。但这是完全合理的。感谢Gordon,不管我使用的是SQL2008,我使用的DBMS似乎不接受类似“top”这样的子句。还有其他方法吗?@damowon你确定你在使用SQL2008吗?这个语法对我来说很好。如果我想利用我目前正在练习的子查询实现同样的结果,你能给我一些指导吗?非常感谢!!:)
select top 1 m.title, m.yearreleased
from movies m join
     actsin ai
     on ai.movienum = m.movienum join
     stars s
     on ai.starid = s.starid
where gname = 'Matt' and fname = 'Damon'
order by m.yearreleased desc;
select m.title, m.yearreleased
from movies m join
     actsin ai
     on ai.movienum = m.movienum join
     stars s
     on ai.starid = s.starid
where gname = 'Matt' and fname = 'Damon'
order by m.yearreleased desc
limit 1;