如何通过两列连接mysql并从连接表中获取最新记录?

问题描述 投票:0回答:1

我有表格设置,位置和结果。

我想获得每对设置+位置的最新结果(最大ID或日期列)。

因此,如果我有4个设置,每个设置有2个位置,我想为每个设置+结果获得8行,其中包含最新的结果ID。

此查询部分工作。我有对设置+位置,但结果加入是设置的最新结果(我需要单独设置和位置)。

SELECT s.id, r.id AS last_result_id, r.date AS last_result_date
FROM result r
JOIN (SELECT max(r.id) max_id, r.setting_id
     FROM result r
     GROUP BY r.setting_id) r_sub 
     ON r.id = r_sub.max_id
JOIN setting s ON r.setting_id = m.id;

有什么建议?

mysql join max
1个回答
2
投票

你可以在Setting和Location表之间使用一个简单的JOIN,并获得每个的最大结果id,例如:

SELECT s.id, l.id, 
(SELECT MAX(r.id) FROM result WHERE r.setting_id = s.id) As result_id
FROM settings s JOIN location l ON s.id = l.setting_id;
© www.soinside.com 2019 - 2024. All rights reserved.