[已解决问题] sql复合查询
提问时间: 2008-07-15 19:56
悬赏分:10 浏览:248 次

各位兄弟:

    小弟使用SQL数据库开发一个酒店预订的系统,遇到一个问题,请高手帮忙,问题如下:

  酒店信息表:hotel_id(酒店ID),hotel_name(酒店名称),star(星级),province(所在省),city(所在市),intro(酒店介绍)......

酒店房型信息表:room_id(房型ID),hotel_id(酒店ID),room_type(房型),normal_price(正常价),member_price(会员价)......

 我现在想能过一条sql语句来实现查询,条件如下:按城市查询酒店列表,同时在列表中显示酒店的两个房型信息,排序的条件:酒店最低价格、酒店等级,请问如何来实现?

效果如下图:

所有回答(3)
select hotel_name,room_id, room_type from 酒店信息表 left join 酒店房型信息表 on 酒店信息表.hotel_id = 酒店房型信息表.hotel_id where 酒店信息表.city = 你想要的城市 order normal_price, star
1个月前   回答者:随风逝去(叶进) - 初学一级
我觉得elong的并不是一条sql语句搞定的,如果是asp.net的话,我觉得这是典型的GridView里面再嵌套一个子GridView,当然并非一定就要是GridView,DataList等也可以。
1个月前   回答者:datasky - 小虾三级
select m.room_id,n.star,m.room_type,m.normal_price from 酒店房型信息表 m inner join 酒店信息表 n on m.hotel_id=n.hotel_id where n.province='省份' order by 酒店最低价格、酒店等级 desc(降序)。asc(降序)
1个月前   回答者:右手年华 - 初学一级
评论
1个月前   放飞心情 :
不是,要按酒店分组,然后再按酒店的最小价格再排序,每个酒店先提取前两条房型信息
效果见:http://www.elong.com/hotels/search.aspx?x=0.9953588744054636
1个月前   放飞心情 :
datasky可以用嵌套来解决,我目前也是用了嵌套,Repeater里面嵌套了一个GridView,GridView用于显示房型信息,但是酒店信息显示的时候要用到最小值排序min(房价),这是个聚合函数,好像不太好解决.目前写了个存储过程用了表变量,但我想能不能直接用一条SQL来搞定呢?
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关链接