Как соединить mysql двумя столбцами и получать только самые новые записи из объединенной таблицы? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть настройки таблиц, местоположение и результат.

Я хотел бы получить самый новый результат (максимальный идентификатор или столбец даты) для каждой настройки пары + местоположение.

Так что, если у меня есть 4 настройки с 2 местоположениями в каждой, я хотел бы получить 8 строк с новейшим идентификатором результата для каждого параметра + результат.

Этот запрос работает частично.У меня есть пара настройки + местоположение, но затем объединенный результат - это самый новый результат для настройки (мне нужно для настройки и местоположения индивидуально).

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;

Есть предложения?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете использовать простой JOIN между таблицами настроек и местоположения и получить максимальный идентификатор результата для каждой, например:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...