mysql - 即使没有找到也显示代理名称?

标签 mysql

有没有办法在结果中显示 agent_call 以包含 agent_call IN ('Agent1', 'Agent2', 'Agent3', 'Agent4') 中的所有内容

例如,结果只找到agent_call Agent2和Agent4有相关数据,其他没有匹配的agent应该为空。

SELECT monitoring_session.id, session_date, agent_call, Count(*)   AS total 
FROM   `monitoring_session` 
        JOIN monitoring_campaign  ON monitoring_campaign.id = monitoring_session.monitoring_campaign_id 
WHERE  agent_call IN ('Agent1', 'Agent2', 'Agent3', 'Agent4') 
GROUP  BY Date(session_date), agent_call

最佳答案

如果您想获得结果,即使连接不返回任何内容,您也需要使用 LEFT JOIN。

试试这个:

SELECT monitoring_session.id, session_date, agent_call, Count(*)   AS total 
FROM   `monitoring_session` 
        LEFT JOIN monitoring_campaign  ON monitoring_campaign.id = monitoring_session.monitoring_campaign_id 
WHERE  agent_call IN ('Agent1', 'Agent2', 'Agent3', 'Agent4') 
GROUP  BY Date(session_date), agent_call

关于mysql - 即使没有找到也显示代理名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670218/

相关文章:

php - 来自 MYSQL 查询的 PHP 国家/地区总金额

c# - 获取最近添加的记录的主键并作为外键插入到另一个表中

python - 使用 mysql 在 python 中的 while 循环中选择

java - 将 MySql 输入流转换为 byte[]

php - 相当于 mysql_fetch_array 的 PDO

mysql - Hibernate 更新 OneToMany

mysql - 在聚合查询中使用计数和求和

php - 如何检查 INSERT IGNORE 是否实际插入了来自 php 的行

MYSQL 从 SELECT 子查询更新所有行的数据

mysql - 如何拥有一个可以独立于 azure 运行的完全独立的应用程序?