我有一个表(短版ofcourse)像以下
--------------------------------------------------------
|id | Simulation_Name | Simulation_Version | sim_key |
--------------------------------------------------------
| 1 | MySim1 | 1 | 10 |
| 2 | MySim1 | 2 | 10 |
| 3 | MySim2 | 1 | 11 |
| 4 | MySim2 | 2 | 11 |
--------------------------------------------------------
在前端,我只想显示每个模拟的最新版本。我会很感激如何做到这一点使用Django的ORM的任何帮助。我知道有一个Max字段,但仅适用于日期。 目前,我使用原始的SQL同一个内连接来实现这一目标。 关于ORM的任何指针?预先感谢
这是我如何做到这一点,现在,
SELECT *
FROM
simulation_table AS A INNER JOIN
(SELECT id, max(simulation_version) as max_version
from
simulation_table
group by sim_key) AS B
ON
A.sim_key= B.sim_keyAND A.simulation_version= B.simulation_version
答案 0 :(得分:2)
Max
应该使用整数:
from django.db.models import Max
simulations = Simulation.objects.values('name').annotate(max_version=Max('version'))