0
我正在嘗試從一些cradel到我們的PBX的嚴重報告中找到最新的活動。我有以下的代碼今天給了我所有的行動的一個偉大的觀點爲每劑:MySQL Max沒有被選中具有多個連接的maximumn值
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;
但是我實際上並沒有得到最新的事件,我得到了最近的事件,但總是有幾個新事件被忽略。任何想法爲什麼發生這種情況?
這不是標準的SQL。爲了獲得更好的結果,不要依賴mysql特定的查詢。所有選定的表達式都應顯示在GROUP BY語句中。此外,GROUP BY默認情況下由ASC對錶達式進行排序。你的聲明是多餘的 – Sebas 2014-10-08 16:16:37
'a_name'是從哪裏來的?哪張桌子? – Sebas 2014-10-08 16:20:09