注册 登录
编程论坛 SQL Server论坛

求助,请告诉我这个查询语句的执行过程

wolfguy 发布于 2008-05-20 22:16, 690 次点击
select filmname,rating,price,c1.cc from
movie as m1 inner join cc as c1 on c1.cid=m1.cid
where m1.price =
    (select MIn(price) from movie as m2
    where m1.cid=m2.cid
    and m2.rating=
        (select max(m3.rating) from movie as m3
        where m3.cid=m2.cid
        group by m3.cid)
    group by m2.cid)
我不理解的地方就是这里的子查询返回的值是多个(我想这个大家可以想象的),为什么可以直接用“=”?
3 回复
#2
wuhui52017172008-05-20 22:23
哪呀?···
那子查询返回的数据就是一条嘛···
min 是最小的  max 是最大的
怎么会有多条数据呢···
#3
wolfguy2008-05-20 22:37
我觉得关键的好象是
        where m3.cid=m2.cid
        group by m3.cid
第二个子查询也应该一样
#4
wuhui52017172008-05-20 23:00
嗯啦···那只返回一条数据
要是有多条的话
你在数据库执行那段代码时就会报错,有相关的错误提示
1