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 テーブルに結合し、Room Price DESC と Hotel Name ASC にINNER JOINを適用します。ORDER BY

于 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 に答える