我有表格设置,位置和结果。
我想获得每对设置+位置的最新结果(最大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;
有什么建议?
你可以在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;