Вот запрос:Объясните, как работает этот подзапрос SELECT WHERE?
SELECT ID, Name, EventTime, State
FROM mytable as mm Where EventTime IN
(Select MAX(EventTime) from mytable mt where mt.id=mm.id)
Вот скрипка: http://sqlfiddle.com/#!3/9630c0/5 Это происходит из этого С.О. вопрос: Select distinct rows whilst grouping by max value
Я хотел бы услышать на простом английском языке, как это работает. Мне не хватает фундаментального понимания его части.
Я действительно не понимаю, что делают псевдонимы в части mt.id = mm.id. Он выбирает строки, где id равен id?
вы можете выбрать один из той же таблице несколько раз в одном запросе, читать о Самосоединения и псевдонимами. 'mt' и' mm' позволяют вам и машине различать записи, используемые в оценке. – Bulat
Обратите внимание, что если вы читаете комментарии (а затем есть еще один подобный ответ), 'IN' бесполезен, и вы можете использовать' EventTime = (Select MAX' – xanatos