很抱歉,如果这是一个愚蠢的问题,但我有一个酒店系统数据库的2个表,“房间”表和“客人”表。
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 :(得分:1)
在两个表之间进行外部联接,并将AND Guests.room_number is null
添加到查询的末尾。
答案 1 :(得分:1)
这是微不足道而不是愚蠢。
SELECT Rooms.room_number
From Rooms
WHERE Rooms.room_number not in ( select Guests.room_number
from Guests)