Tha*_*ris 11 python mysql orm django-models
我正在使用Django和MySQL.我有一个类似于以下的模型:
class MM(models.Model):
a = models.IntegerField()
b = models.IntegerField()
c = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
我有多行a等于b,我想执行以下SQL查询:
SELECT a, b, MAX(c) AS max FROM MM GROUP BY b, a;
Run Code Online (Sandbox Code Playgroud)
如何用Django ORM完成这项工作?我尝试了使用注释的不同方法,但现在运气到目前为止.
非常感谢!
小智 11
我想你可以这样做:
MM.objects.all().values('b', 'a').annotate(max=Max('c'))
Run Code Online (Sandbox Code Playgroud)
请注意,您需要导入一些内容才能使用Max: from django.db.models import Max
values('b', 'a')将给出GROUP BY b, a并将annotate(...)在您的查询中计算MAX.