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
生成这个表后。数据库会根据索引情况自行优化。