数据库的Select

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:54:18
有三个表格:
1.Hotel(酒店),Hid(主键),Hname
2.Room(房型),Rid(主键),Hid,Price(一般的价格)
3.Price(价格),Pid(主键),Rid,Date1,Date2,Price
房型里面的price就是正常的价格(比如100),但是节日、展会日期房间的价格可能有变动,比如2009-10-14到20009-10-19期间价格是300
Pid Rid Date1 Date2 Price
1 1 2009-10-14 2009-10-19 300

那么用户选择2009-10-13至1009-10-25订酒店,要求房价在200-300以内
怎么写那个SQL语句呢?select ...?

清楚问题再回答,不清楚请不要回答;或者有其他好的建议(包括改进数据库表格的建议)请不吝指教。
怎么写那个SQL语句?第一第二个人的回答都是废话

取全部字段,单独选字段的话自己改

select *
from Hotel a
join Room b on a.Hid=b.Hid
where b.price between 200 and 299
and not exists (
select * from Price c where b.Rid=c.Rid
and (c.Date1 between '2009-10-13' and '2009-10-25' and c.Price not between 200 and 299 )
or (c.Date2 between '2009-10-13' and '2009-10-25' and c.Price not between 200 and 299 )
)

SQL语言还是以前那样写啊
只是你的业务逻辑层去判断处理节日的问题~!
和数据库无关,SQL语句没必要改

再建一个表,涨价表.表结构和price表一样,只有价格不一样,如果是平常日子,就到price表里查去,要是节日、展会日就到涨价表里查去.

select price
from 3
where price is between 200 and 300