如何解决具有聚合最大函数的 Django ORM QuerySet
我尝试转换 SQL 命令:
SELECT fname,lname
FROM customer
WHERE id > (SELECT max(id)
FROM customer
WHERE state = 'TX');
到 ORM (Django) QuerySet。 我第一次尝试时使用:
Customer.objects.filter(id__gt=Customer.objects.filter(state='TX').values('id')).values('fname','lname')
但它给了我错误的输出(我与原始 sql 查询进行了比较) 因此,我了解了更多信息并实现了以下目标:
Customer.objects.filter(id__gt=Customer.objects.filter(state='TX').values('id').aggregate(Max('id'))['id__max']).values('fname','lname')
我是一名大三学生,所以想解决以下两个问题: 我有两个问题:
- 在第一个 QuerySet 中会发生什么,输出错误的结果? (它不会崩溃)
- 与 SQL 原始查询相比,具有正确结果的 QuerySet 既长又复杂。 它是正确的 QuerySet 吗? 我可以使用更简单的 QuerySet 获得相同的结果吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。