2013-03-17 53 views
0

对不起,如果这是一个愚蠢的问题,但我已经有2个酒店系统数据库表,“房间”表和“客人”表。选择计数= 0的条目

Rooms表中有一个room_number列,表示房间号码(主键)。 Guests表有一个room_number列,用于客人留在的房间号码(外键)。

我需要一个查询,它只返回没有客人留在他们房间的房间号码。

目前,我有这样的:

SELECT Rooms.room_number, COUNT(Guests.guest_id) AS occupant_count 
From Rooms,Guests 
WHERE (Rooms.room_number = Guests.room_number) 

这将返回所有乘客计数。我怎样才能让它只返回房间里没有客人的房间号码?

在此先感谢您的帮助!

+0

“GROUP BY”子句在哪里?添加“GROUP BY”,然后添加“HAVING COUNT(Guests.guest_id)= 0”,就完成了。 – bernie 2013-03-17 21:37:04

+0

是它的微不足道的,而不是愚蠢的。而且我不认为这样做是公平的,因为询问他不知道的内容(upvoted回到零)! – Zeddy 2013-03-17 21:43:07

+0

非常感谢!我对简单的SQL基本上很好,显然我需要更多练习,使用GROUP BY子句等等。 – 2013-03-17 21:44:02

回答

1

这是微不足道的,而不是愚蠢的。

SELECT Rooms.room_number 
From Rooms 
WHERE Rooms.room_number not in (select Guests.room_number 
           from Guests) 
+0

谢谢!这个窍门! – 2013-03-17 21:47:06

1

在两个表之间进行外连接并将AND Guests.room_number is null添加到查询结尾。