簡體   English   中英

SQL-顯示表中的記錄,其中外鍵值與另一個表中的主鍵值匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM