连接另一个MySQL表的查询,计数行和特定字段



我不是MySQL专家,所以我需要一些建议来进行单个查询,连接另一个表并计算所有连接的行以及具有特定字段的行

这是我的初始查询:

SELECT e.id, e.event_fr, e.max_capacity, count(s.id) as subscriptions
FROM events e
INNER JOIN events_subscriptions s ON s.activity = e.id
GROUP BY e.id, e.event_fr
ORDER BY e.id ASC

基本上,我想找出(计数)给定事件的订阅数量。

但是每个订阅事件都有一个名为"waiting_list"的字段;可以是0或1。它告诉我当前订阅的人是否在等待名单上。

我也需要能够计算这些,以找出有多少人在等待给定事件的名单上:

id: 3,event_fr:瑜伽&;放松,付费:14waiting_list: 3

id: 4event_fr:柔道,付费:10waiting_list: 5

等。我理解一个超级外连接与子查询是缺失的。是否可以额外计算"等候名单"?在连接表上?(例如WHERE waiting_list = 1)

在我看来,您实际上并不需要额外的计数,因为您已经知道事件的最大容量是多少。因此,您只需要从e.max_capacity值中减去订阅数,这就是当前在等待名单上的人数。

最新更新