MySQL запрос на максимальную дату - PullRequest
0 голосов
/ 04 октября 2011

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

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

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

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

Спасибо

EDIT:

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

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) 

Ответы [ 2 ]

1 голос
/ 04 октября 2011
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'
1 голос
/ 04 октября 2011

1001 * попробовать *

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...