[英]MYSQL JOIN and get full row based on MAX
確實試圖尋找解決方案,但是我無法使其正常工作。 我在Mysql event_parties
和events
有2個表。
event_parties:
g_event_id agent_id
---------- --------
2917 2
2918 2
2919 2
3067 3
3078 3
events:
g_event_id event_id event_time
---------- -------- ----------
2917 29 2016-10-19 15:24:25
2918 31 2016-10-19 15:24:28
2919 30 2016-10-19 15:29:46
3067 29 2016-10-20 15:33:46
3078 30 2016-10-21 15:29:46
我需要以g_event_id
作為ID.
這兩個表之間的JOIN ID.
我需要表events
所有字段,並且需要具有最高g_event_id
或具有最高event_time
。
像這樣:
agent_id g_event_id event_id event_time
-------- ---------- -------- ----------
2 2919 30 2016-10-19 15:29:46
3 3078 30 2016-10-21 15:29:46
掙扎了幾天:(
/克里斯蒂安
對於最高的一個: ORDER BY g_event_id DESC, event_time DESC LIMIT 1
更新:
為了獲得最高的收益,您需要兩次加入。 首先將所有內容放在一個表中,然后再加入,沒有最新內容的那一行是最新事件。
對於g_event_id作為后面的定義
SELECT event_parties.agent_id, event_parties.g_event_id, event_id, event_time
FROM event_parties
INNER JOIN events USING (g_event_id)
LEFT JOIN event_parties AS later_event
ON (later_event.agent_id = event_parties.agent_id
AND later_event.g_event_id > event_parties.g_event_id)
WHERE later_event.g_event_id IS NULL
GROUP BY event_parties.agent_id
嘗試這個:
select
ep.agent_id,
ep.g_event_id,
e.event_id,
e.event_time
from event_parties ep
join events e on e.g_event_id = ep.g_event_id
order by e.g_event_id DESC, e.event_time desc
limit 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.