sql-server - 我的查询似乎是正确的,但没有结果

标签 sql-server database

我有数据库:

Movie ( mID, title, year, director ) :有一部电影,ID 号为 mID,标题,发行年份和导演。

Reviewer ( rID, name) : ID号为rID的reviewer有一个特定的名字。

Rating ( rID, mID, stars, ratingDate ) :评论者 rID 在特定的 ratingDate 给电影 mID 打了一些星号 (1-5)。

对于同一评论者对同一部电影进行两次评级并在第二次给予更高评级的所有情况,我需要返回评论者的姓名和电影的标题。

我的问题

select r.name, m.title    
from Reviewer r, Movie m, Rating rg    
where rg.stars=(select max(g.stars) from Rating g    
            where rg.mID=g.mid and g.rID=rg.rID    
            group by g.stars    
            having count(g.mid)=2)    

它没有给我带来任何结果 你能告诉我我的错误在哪里吗?

最佳答案

Select r.name, m.title From Rating rg
Left join Reviewer r ON rg.rID = r.rID
Left join Movie m ON rg.mID = m.mID
Where rg.stars > (
    Select Top 1 g.stars From Rating g
    Where -- g.ratingDate != rg.ratingDate AND -- discard same rating
     g.mID = rg.mID and g.rID = rg.rID
     order by ratingDate desc
    )

关于sql-server - 我的查询似乎是正确的,但没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36116276/

相关文章:

database - Hash Join 需要全表扫描

sql - TSQL 日期时间 ISO 8601

sql-server - 一种在表中的两个域之间添加约束而不使用触发器的方法?

ruby-on-rails - 如何在现有 "unique"旁边的 Rails 3 和 PostgreSQL 中指定 "unique key"值?

node.js - 防止 NodeJS 中的 MongoDB 多重连接

mysql - 跨数据库使用 UNION |数据库

mysql - 标签系统的可扩展性

SQL Azure : Connection to SQL Azure throws exception

sql - 获取数据库中唯一约束和索引的列表

sql-server - ADOQuery.Locate 慢,创建索引