我有表格设置,位置和结果。
我想获取每对设置+位置的最新结果(最大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;
有什么建议吗?
答案 0 :(得分:2)
您可以在“设置”表和“位置”表之间使用简单的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;