根据另一个 table 中的条件对 table 中的行进行计数

Count rows in a table according to criteria in another table

我有两个 table,"Booking" 和 "Sports facility"。用户可以在给定的时间内预订给定的体育设施(每个 facility/hour 都有一个唯一的 ID,例如 "Swimming Pool" 在“9:00”的 ID 与在“10:00”的 ID 不同,还有不同的一天不同的)。

预订有以下列... [ ID (PK), ID_FACILITY, ID_USER, 日期, 小时, 付费, PAYMENT_METHOD ]

设施有以下列... [ ID (PK), NAME, STATE, PRICEPERHOUR, DATE, HOUR]

我遇到的问题是我不知道如何比较这两个 table 之间的值。我想计算 "Booking" table 中的条目,但检查 ID_FACILITY 值是否等于给定值,例如 "Swimming Pool",并检查例如,小时是“9:00”。

到目前为止我得到的错误查询是这个...

select count(*) as totalbookingcriteria from public.booking, public.facility where hour = '9:00' and name = 'Swimming Pool'

您只需要 INNER JOIN 表格,所以

select count(*) as totalbookingcriteria 
  from public.booking b 
     INNER JOIN public.facility f 
           ON ( b.ID_FACILITY = f.ID ) 
 where f.hour = '9:00' 
   and f.name = 'Swimming Pool'