2012-03-04 86 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数据的产品。