Запрос MySQL на максимальную дату

#mysql #sql

#mysql #sql

Вопрос:

У меня есть, например, эти 2 таблицы:

 Organiser        Events 
----------       -------
id         1     id
           |__ * organiser_id
                 date
                 status
  

Как мне выбрать идентификаторы всех организаторов, для которых последнее событие, статус которого равен, например, «активный».

Я думаю, что мне нужно использовать max (date), возможно, в подзапросе или мне нужно использовать соединение? До сих пор не нашли решения, поэтому любая помощь приветствуется!

Спасибо

Редактировать:

Я только что нашел это решение (не знаю, является ли это лучшим?):

 SELECT o.id, e.date
FROM Organiser o
INNER JOIN events e on e.organiser_id = o.id
WHERE e.date = (SELECT max(date) 
                FROM events e2
                WHERE e2.organiser_id = o.id) 
  

Ответ №1:

 SELECT
      id
FROM 
      Organiser AS o
WHERE 
      ( SELECT status
        FROM Events AS e
        WHERE e.organiser_id = o.id
        ORDER BY `date` DESC
        LIMT 1
      ) = 'active'
  

Ответ №2:

попробуйте

 SELECT o.name, ep.date 
FROM ( SELECT date,max(id) AS maxDateID FROM events es GROUP BY date ) md
INNER JOIN events ep ON ep.id=md.id
INNER JOIN organiser o ON o.id=ep.organiser_id
WHERE e.status='active'
  

REFERENCE