MySQL Max未选择具有多个连接的最大值

标签 mysql

我正在尝试查找我们 PBX 的从 Gradle 到坟墓报告的最新事件。我有以下代码,可以让我很好地了解每个代理今天的所有操作:

 select  e.`event_id`, `event_time` as event_time, e.g_event_id,
     p.`agent_id`,
     `a_name`, `a_number`
     from `c2g`.`events`  as e
     left join `event_parties` as p on e.`g_event_id` = p.`g_event_id`
     Left join `agent` as a on p.agent_id = a.agent_id
     where p.agent_id is not null
     and p.agent_id <> 0
     order by event_time desc;

下面的代码应该只为我提供每个代理的最新事件:

 select  e.`event_id`, MAX(`event_time`) as event_time, e.g_event_id,
    p.`agent_id`,
    `a_name`, `a_number`
    from `c2g`.`events`  as e
    left join `event_parties` as p on e.`g_event_id` = p.`g_event_id`
    Left join `agent` as a on p.agent_id = a.agent_id
    where p.agent_id is not null
    and p.agent_id <> 0
    GROUP BY a_name
    order by a_name asc;

但是我实际上并没有得到最新的事件,我得到了最近的事件,但总是有几个较新的事件被忽略。知道为什么会发生这种情况吗?

最佳答案

如果有效的话试试这个

select  e.`event_id`, e.`event_time`, e.g_event_id,
p.`agent_id`,
`a_name`, `a_number`
from `c2g`.`events`  as e
left join `event_parties` as p on e.`g_event_id` = p.`g_event_id`
Left join `agent` as a on p.agent_id = a.agent_id
where p.agent_id is not null
and p.agent_id <> 0
GROUP BY a_name
order by e.`event_time` DESC LIMIT 0,1;

关于MySQL Max未选择具有多个连接的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26260638/

相关文章:

javascript - 单击提交按钮并将数据插入 php 中的数据库表时如何显示隐藏表?

mysql - 使用日期函数 mysql 并在跟踪的同时添加日期

php - 多类别加入 group_concat 和类别搜索

mysql - 如何在数据库中实现这些实体关系?

mysql - 想知道如何加快 MySQL 调用速度

mysql - SQL联盟更新

mysql - 如何从列为NULL的MySQL表中选择数据

mysql - 创建 MySQL 用户时使用 % 作为主机

php - Cookie 在本地工作,但不能在线 PHP MYSQL

php - 我如何选择什么以及何时使用 ob_start 缓存数据而不是查询数据库?