这可能是一个多余的问题,但我已经尝试从其他相关主题的以前的答案,但还是无法弄明白。Django的GROUP BY ID,然后选择最大时间戳
我有一个表Board_status看起来是这样的(多个状态和时间戳,每块板):
time | board_id | status
-------------------------------
2012-4-5 | 1 | good
2013-6-6 | 1 | not good
2013-6-7 | 1 | alright
2012-6-8 | 2 | good
2012-6-4 | 3 | good
2012-6-10 | 2 | good
现在我想选择Board_status表中的所有记录,组所有的人都通过board_id为不同board_id,然后选择每块电路板上的最新状态。基本上结束了,像这样(只最新状态和时间戳,每块板)表:
time | board_id | status
------------------------------
2013-6-7 | 1 | alright
2012-6-4 | 3 | good
2012-6-10 | 2 | good
我曾尝试:
b = Board_status.objects.values('board_id').annotate(max=Max('time')).values_list('board_id','max','status')
,但似乎并不像它的工作。每个board_id仍然给我超过1条记录。
我应该在Django中使用哪个命令来执行此操作?
我认为你是对的。我一直试图在原始SQL中执行它,但也无法在1个查询中获得它。我正在考虑将所有board_id读入数组,然后从该数组到数据库执行for循环以获取最新记录。如果我的桌子变大了,会很麻烦... – Linh