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)和所有类型为“家庭”的房间类型的价格,在酒店号升序中按价格降序排列。

我对如何加入表来执行此操作然后对查询的顺序进行排序有点困惑。任何启示将不胜感激。

4

2 回答 2

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

它使用 将 Room 表连接到 Hotel 表INNER JOIN,然后ORDER BY在 Room Price DESC 和 Hotel Name ASC 上应用。

于 2013-03-15T02:56:57.430 回答
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

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-03-15T02:56:51.490 回答