我的标题可能不能充分解释我的问题,所以如果有必要,请随时编辑。
我正在创建一个项目,其中用户使用HTML和PHP页面访问数据库预订宾馆。
我做了一个页面,询问用户他们想住在哪个城市,并显示他们选择的城市中所有宾馆的名称。(Name
只是一个普通列,没有主键)然后,我想问他们想住哪一家宾馆,并展示该宾馆的房间。
然而,我不确定我需要写什么查询来做到这一点。
rooms
表有一个外键GuestHouseID_FK
,它链接到guest_house
表中的主键GuestHouseID
(自动递增)。因此,特定宾馆的每个房间都有相同的身份证号。
所以我的问题是,我可以写一个查询,显示Rooms
表中所有的房间,其中GuestHouseID_FK
值与他们选择的宾馆名称的GuestHouseID
值相匹配吗?
这里是SQL,所以你可以看到名字:
CREATE TABLE Guest_House (
GuestHouseID int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
City varchar(30) NOT NULL,
NumOfRooms int(2) NOT NULL,
Name varchar(30) NOT NULL,
Rating char(5) NOT NULL
);
CREATE TABLE Rooms (
Room_Number int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,
NumOfBeds int(2) NOT NULL,
Ensuite char(1) NOT NULL,
Room_Service char(1) NOT NULL,
CostPerDay double(10, 2) NOT NULL,
GuestHouseID_FK int(4) NOT NULL,
INDEX GuestHouseID_FK (GuestHouseID_FK),
CONSTRAINT rooms_guest_house FOREIGN KEY (GuestHouseID_FK) REFERENCES Guest_House (GuestHouseID)
ON DELETE CASCADE ON UPDATE CASCADE
);
一如既往,我很感谢你的回答,如果这有点含糊,我很抱歉。
这是查询。
select Rooms.* from Rooms
Left Join Guest_House ON (Guest_House.GuestHouseID = Rooms.GuestHouseID_FK)
where Guest_House.GuestHouseID = "your id" ;