悬赏分: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语句来实现查询,条件如下:按城市查询酒店列表,同时在列表中显示酒店的两个房型信息,排序的条件:酒店最低价格、酒店等级,请问如何来实现?
效果如下图:
|
select hotel_name,room_id, room_type
from 酒店信息表 left join 酒店房型信息表 on 酒店信息表.hotel_id = 酒店房型信息表.hotel_id
where 酒店信息表.city = 你想要的城市
order normal_price, star 我觉得elong的并不是一条sql语句搞定的,如果是asp.net的话,我觉得这是典型的GridView里面再嵌套一个子GridView,当然并非一定就要是GridView,DataList等也可以。 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个月前 放飞心情 : 不是,要按酒店分组,然后再按酒店的最小价格再排序,每个酒店先提取前两条房型信息 效果见:http://www.elong.com/hotels/search.aspx?x=0.9953588744054636 |
|
1个月前 放飞心情 : datasky可以用嵌套来解决,我目前也是用了嵌套,Repeater里面嵌套了一个GridView,GridView用于显示房型信息,但是酒店信息显示的时候要用到最小值排序min(房价),这是个聚合函数,好像不太好解决.目前写了个存储过程用了表变量,但我想能不能直接用一条SQL来搞定呢? |