2013-03-15 76 views
0

嘗試將某些表連接在一起以查找某些預訂組時遇到了一些問題。下面是我創建的表:列出從多個表中取得的相關搜索數據

create table Hotel (
HNo char(4), 
Name varchar(20) not null, 
Address varchar(50), 
Constraint PK_Hotel Primary Key (HNo)) 
) 


create table Room (
RNo char(4), 
HNo char(4), 
Type char(6) not null, 
Price decimal (7,2), 
Constraint PK_Room Primary Key (HNo, RNo), 
Constraint FK_Room Foreign Key (HNo) 
references Hotel (HNo) 
) 


create table Guest (
GNo char(4), 
Name varchar(20) not null, 
Address varchar(50), 
Constraint PK_Guest Primary Key (GNo) 

) 


create table Booking (
HNo char(4), 
GNo char(4), 
DateFrom date, 
DateTo date, 
RNo char(4), 
Constraint PK_Booking Primary Key (HNo, GNo, DateFrom), 
Constraint FK_Booking Foreign Key (GNo) 
references Guest (GNo), 
Constraint FK_Booking_room Foreign Key (HNo, RNo) 
references Room (HNo, RNo), 
Constraint FK_Booking_hotel Foreign Key (HNo) 
references Hotel (HNo) 
) 

我需要做的是列表的房間號碼(RNO),酒店數量(HNO)和價格所有客房類型與類型「家庭」的範圍內降價格秩序酒店號碼的升序。

我有點困惑如何加入表來做到這一點,然後排序查詢的順序。任何啓蒙會感激。

回答

0
SELECT a.HNO, a.Name, 
     b.RNo, b.Type, b.Price 
FROM Hotel a 
     INNER JOIN Room b 
      ON a.HNo = b.HNo 
WHERE b.Type = 'family' 
ORDER BY b.Price DESC, a.HNo 

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

1

這是你在找什麼?

SELECT R.RNo, H.HNo, R.Price 
FROM Room R 
    INNER JOIN Hotel H ON R.HNo = H.HNo 
WHERE R.Type='family' 
ORDER BY R.Price DESC, H.Name ASC 

它加入客房表使用INNER JOIN酒店表,然後在適用房價格降序的ORDER BY然後酒店名稱ASC。