如何连接两个表并计算用户在选定日期内拨打的电话数量。问题是运行查询时无法获取用户具有 0 或 null 值的数据

问题描述 投票:0回答:1

我的查询是

选择 a.admin_id, count(1) 作为来自管理员的计数 a.admin_id=tc.calling_by 上的左外连接电话 tc,其中 a.is_active='yes' 和 tc.calling_date='2023-11-19' group by a.admin_id;

我想做这样的桌子

admin_id
1 5
2 空或0

但仅获取计数值大于 1 的行。

选择 a.admin_id, count(1) 作为来自管理员的计数 a.admin_id=tc.calling_by 上的左外连接电话 tc,其中 a.is_active='yes' 和 tc.calling_date='2023-11-19' group by a.admin_id;

mysql join left-join
1个回答
0
投票
SELECT a.admin_id, COALESCE(COUNT(tc.called_by), 0) AS count
FROM admin a
LEFT OUTER JOIN telecalling tc ON a.admin_id = tc.called_by AND tc.calling_date = '2023-11-19'
WHERE a.is_active = 'yes'
GROUP BY a.admin_id;

此查询中使用 COALESCE 函数将 NULL 值替换为 0。LEFT OUTER JOIN 保证所有管理记录都包含在结果中,而 COALESCE 函数则处理在

telecalling
数据库中找不到匹配条目的情况。

© www.soinside.com 2019 - 2024. All rights reserved.