根据另一个表中的条件计算表中的行数
Posted
技术标签:
【中文标题】根据另一个表中的条件计算表中的行数【英文标题】:Count rows in a table according to criteria in another table 【发布时间】:2015-11-04 19:18:02 【问题描述】:我有两张桌子,“预订”和“体育设施”。用户可以在给定的时间预订给定的体育设施(每个设施/小时都有一个唯一的 ID,例如“9:00”的“游泳池”将具有与“10:00”不同的 ID,并且不同的一天不同)。
Booking 具有以下列... [ ID (PK), ID_FACILITY, ID_USER, DATE, HOUR, PAID, PAYMENT_METHOD]
设施具有以下列... [ ID (PK)、姓名、州、PRICEPERHOUR、DATE、HOUR]
我的问题是我不知道如何比较这两个表之间的值。我想计算“预订”表中的条目,但检查 ID_FACILITY 值是否等于给定值,例如“游泳池”,并检查时间是否为“9:00”例如。
到目前为止我得到的错误查询是这个......
select count(*) as totalbookingcriteria from public.booking, public.facility where hour = '9:00' and name = 'Swimming Pool'
【问题讨论】:
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'
是你需要的吗?
@JorgeCampos 这正是我想要的!我搞砸了内部连接......非常感谢! :)
我已添加为答案。如果它解决了您的问题,请考虑接受它:)
【参考方案1】:
您只需要为您的桌子提供一个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'
【讨论】:
以上是关于根据另一个表中的条件计算表中的行数的主要内容,如果未能解决你的问题,请参考以下文章