我正在努力获得入住每家酒店的客人数量(总共三家酒店)。我的代码如下。
select hotelbook.hotelname, postcode, count(guestid)
from hotel, hotelbook
group by hotelname
我必须显示我已成功完成的来宾数量。我还要显示酒店的名称,我已经完成了。而且我还必须显示邮政编码,这对我来说是个问题。当我运行此代码时,一切看起来都很好,但三家酒店的邮政编码是相同的。
我回头看了一下我创建的桌子,但我给这三家酒店提供了独特的邮政编码。正如以往一样,帮助是受到赞赏的。
编辑 - 代码已更改为:
select hotel.hotelname, postcode, count(guestid)
from hotel, hotelbooking
group by hotelname
每个酒店的邮政编码都是独一无二的,感谢您的帮助。但是,每家酒店的数量都相同。感谢帮助,谢谢。
答案 0 :(得分:1)
按照您的示例,我假设列hotelname
出现在两个表中,可以用于关系(请参阅下面的评论)
select hotel.hotelname, postcode, count(guestid) as cnt
from hotel OUTER JOIN hotelbook ON hotel.hotelname = hotelbook.hotelname
group by hotel.hotelname, postcode
顺便说一下,最好使用'非说话'主键来连接表格。这意味着向表hotelid
添加一列hotel
(主要是一个递增的数字)(并将其用作主键),并在所有其他表中使用此键作为外键来引用酒店{{ 1}}。