0

对不起,如果这是一个愚蠢的问题,但我有 2 个用于酒店系统数据库的表,“Rooms”表和“Guests”表。

Rooms 表有一个 room_number 列,用于表示该房间的编号(主键)。客人表有一个 room_number 列,用于客人入住的房间号(外键)。

我需要一个查询,它只返回没有客人入住的房间的房间号。

目前我有这个:

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

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

提前感谢您的帮助!

4

2 回答 2

1

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

于 2013-03-17T21:37:34.987 回答
1

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

SELECT Rooms.room_number 
From Rooms 
WHERE Rooms.room_number not in ( select Guests.room_number 
                                 from Guests)
于 2013-03-17T21:38:38.243 回答