У меня есть таблица базы данных, подобная этой:
id version_id field1 field2
1 1 texta text1
1 2 textb text2
2 1 textc text3
2 2 textd text4
2 3 texte text5
Если вы не работали, он содержит несколько версий строки, а затем некоторые текстовые данные.
Я хочу запросить его и вернуть версию с наибольшим номером для каждого идентификатора. (поэтому вторые и последние строки только в приведенном выше).
Я пытался использовать группу, упорядочивая по version_id DESC - но, похоже, она упорядочена после группировки, поэтому это не работает.
У кого-нибудь есть идеи? Я не могу поверить, что это не может быть сделано!
UPDATE:
Придумайте это, который работает, но использует подзапрос:
SELECT *
FROM (SELECT * FROM table ORDER BY version_id DESC) t1
GROUP BY t1.id