2012-03-04 79 views
0

我在我的數據庫中有兩個表。在單個語句中查詢多個SQL表

一個叫,另一個被稱爲room_booking

房間和房間預訂都有相同的列room_id

我已經起草了檢查室與一個特定的日期下面的SQL查詢:

SELECT DISTINCT room_id FROM `room_booking` WHERE date_booked='$date'"; 

但現在我需要使用的ID列表訪問room_booking的信息各自的房間。我感興趣的領域是名稱room_size

我該如何做到這一點?我需要一個聯合SQL語句嗎?

在此先感謝!

回答

2

是。您應該爲Join這兩個表獲取結果。

嘗試以下

SELECT r.roomid,r.room, r.room_size,date_booked 
FROM room as r left JOIN room_booking as rb ON r.room_id=rb.room_id 
WHERE date_booked='$date' 
+0

@Teez的兩個問題:** 1)**我如何回顯每張表中的行?我是否仍然使用'$ row ['room_id']'(例如在兩個表中)和'$ row ['date_booked']'(它在room_booking表中)** 2)**將WHERE date_booked如果日期格式爲「2012-01-01」,那麼「$ date''也可以工作? – methuselah 2012-03-04 08:35:13

+1

@methuselah:1)是的,你必須使用$ row ['room_id']和$ row ['date_booked'],但它們應該在select子句中指定.2)是的,它會起作用。 – 2012-03-04 08:38:12

2

是的,你將需要使用JOIN聲明如下

$query="SELECT DISTINCT room, room_size FROM room JOIN `room_booking` ON room.room_id=`room_booking`.room_id WHERE date_booked='$date' "; 
0

你正在編寫錯誤的查詢,你可以改變它像

SELECT room_id FROM `room_booking` as rb,room as r WHERE date_booked='$date' and r.room_id=rb.room_id 

當你,如果你不使用正從多個表中的數據連接,它會給你cartison數據的產品。