2015-09-12 39 views
-1

我的標題可能無法充分解釋我的問題,因此請隨時根據需要對其進行編輯。SQL - 從外鍵值與另一個表中的主鍵值匹配的表中顯示記錄

我正在創建一個項目,其中用戶使用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 
); 

像往常一樣,我很欣賞你的答案,我道歉,如果這是一個有點模糊。

回答

2

這是查詢。

select Rooms.* from Rooms 
Left Join Guest_House ON (Guest_House.GuestHouseID = Rooms.GuestHouseID_FK) 
where Guest_House.GuestHouseID = "your id" ; 
相關問題