[英]SQL - Displaying records from a table where the foreign key value matches the primary key value in another table
我的標題可能不足以解釋我的問題,因此如有必要,請隨時對其進行編輯。
我正在創建一個項目,其中用戶使用HTML和PHP頁面訪問數據庫來預訂旅館。
我制作了一個頁面,詢問用戶他們想住哪個城市,並顯示他們選擇的城市中所有旅館的名稱。 ( Name
只是一個普通的列,沒有主鍵)然后,我想問他們他們想住哪些賓館,並顯示該賓館的房間。
但是,我不確定這樣做需要寫什么查詢。
rooms
表具有一個外鍵GuestHouseID_FK
,該外鍵鏈接到guest_house
表中的主鍵GuestHouseID
(自動遞增)。 因此,特定旅館中的每個房間都將具有相同的ID號。
所以我的問題是,我可以寫一個查詢,顯示所有從房間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" ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.