Есть ли способ сделать это в одном запросе sql?Я хотел бы получить самую новую (версию) той же записи на всех доступных языках.
Моя таблица и пример данных:
ID | Index | Version | Language | ...
------------------------------------------------
1 1 1 1 test1
2 1 2 1 test2
3 2 1 1 test3
4 2 1 2 test4
5 2 1 3 test5
6 2 2 3 test6
7 3 1 1 test7
8 3 1 2 test8
- Идентификатор является уникальным идентификатором
- Индекс уникален для любой записи в базе данных, что означает, что все временные версии иязыковая версия той же статьи / записи имеет тот же индекс.
- Версия, очевидно, является номером версии.1 - первая версия, и любое большее число обычно новее.
- Язык - это номер языковой версии записи / статьи.
Я действительно не могу придумать, как получитьэто в одном запросе.Но, может быть, это выполнимо?
Я хотел бы получить что-то вроде этого:
ID | Index | Version | Language | ...
------------------------------------------------
2 1 2 1 test2
3 2 1 1 test3
4 2 1 2 test4
6 2 2 3 test6
7 3 1 1 test7
8 3 1 2 test8
test1 вышел, потому что test2 на том же языке, и более новый
test5 вышел, потому что test6новее на том же языке
Решено
SELECT T1.* FROM entry_view T1
LEFT JOIN entry_view T2 ON (T1.version < T2.version AND T1.id_language = T2.id_language AND T1.`index` = T2.`index`)
WHERE T2.ID IS NULL