簡體   English   中英

MYSQL加入並基於MAX獲得完整行

[英]MYSQL JOIN and get full row based on MAX

確實試圖尋找解決方案,但是我無法使其正常工作。 我在Mysql event_partiesevents有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM