当前位置: 代码迷 >> SQL >> 该sql话语小弟第一次遇到,请各位指点迷津
  详细解决方案

该sql话语小弟第一次遇到,请各位指点迷津

热度:20   发布时间:2016-05-05 12:38:46.0
该sql语句小弟第一次遇到,请各位指点迷津啊
select top 10  H.HouseID,H.HouseName,H.OpenDate,P.HistoryPrice,R.RegionName from House H left join House_Region R on R.RegionID=H.Region
left join (select Min(HistoryPrice) as HistoryPrice, HouseID from HistoryPrices group by HouseID) P on H.HouseID=P.HouseID
where H.Examine=1 and H.OpenDate>getdate() order by H.OpenDate asc

说明:
House是楼盘信息表
House_Region是楼盘所属区域表
HistoryPrice价格表

这个sql语句是什么意思????它是按什么顺序执行???
------解决方案--------------------
建议你先自己试着解释一下这个SQL,否则别人也根本不知道你目前已经懂了什么,到什么层次,到底是哪儿不懂。

写出你自己的理解,然后让别人来看你的理解是否正确。 否则别人解释过简单你还是理解不了,解释得过细,可能又是根本不必要。
------解决方案--------------------
运行一下就知道了嘛,
以楼盘信息表为准,按HouseID分组,取最小价格,按升序取排列前10位的楼盘名称、价格等等。
具体是什么地方 有问题?
------解决方案--------------------
select top 10 H.HouseID,H.HouseName,H.OpenDate,P.HistoryPrice,R.RegionName 
from House H left join House_Region R on R.RegionID=H.Region
left join (
select Min(HistoryPrice) as HistoryPrice, HouseID 
from HistoryPrices 
group by HouseID
) P on H.HouseID=P.HouseID
where H.Examine=1 
and H.OpenDate>getdate() 
order by H.OpenDate asc


把你的语句格式化一下,就看得清楚了。

先执行(
select Min(HistoryPrice) as HistoryPrice, HouseID 
from HistoryPrices 
group by HouseID
) P

生成这个表后。数据库会根据索引情况自行优化。