Поиск отдельных строк на основе составного ключа в flask -sqlalchemy - PullRequest
0 голосов
/ 04 мая 2020

Возможно, это базовый c вопрос, но у меня есть строки в таблице с составным ключом. Составной ключ состоит из «id» и «version». Оба ключа имеют формат Integer. Теперь я хочу сделать запрос к базе данных таким образом, чтобы мы могли извлечь запись, основываясь только на последнем номере версии (чем больше номер, тем больше последняя запись). Есть ли в flask -sqlalchemy подзапрос или функция, которая может этого достичь?

Вот пример, иллюстрирующий это:

[id | version | othercolumn_1 | othercolumn_2]
[1001 | 1 | someotherthing | someotherthing ]
[1001 | 2 | someotherthing | someotherthing ]
[1002 | 1 | someotherthing | someotherthing ]
[1002 | 2 | someotherthing | someotherthing ]
[1003 | 3 | someotherthing | someotherthing ]
[1003 | 1 | someotherthing | someotherthing ]
[1003 | 2 | someotherthing | someotherthing ]

Я хочу получать записи только с последней версией в данном случае

[1001 | 2 | someotherthing | someotherthing ]
[1002 | 2 | someotherthing | someotherthing ]
[1003 | 3 | someotherthing | someotherthing ]

Что я пробовал:

Table.query.filter_by(Table.id).distinct().order_by(Table.version.desc()).all()

Это дало мне все записи, ранжированные от последней версии до самой старой. Я хотел только самую последнюю запись версии каждого уникального идентификатора.

...