【问题标题】:python Django - Convert SQL Query to ORM Query(Subquery)python Django - 将 SQL 查询转换为 ORM 查询(子查询)
【发布时间】:2018-06-10 13:36:58
【问题描述】:
SELECT *,
        (SELECT sum(amount) FROM history
         WHERE history_id IN
                        (SELECT history_id FROM web_cargroup
                         WHERE group_id = a.group_id) AND type = 1)
        as sum
          FROM web_car a;

上面的查询转换成orm是很困难的 1. orm annotate 由 group by 自动创建。 2. 很难将子查询置于'in'条件

请帮忙。

【问题讨论】:

标签: python mysql django orm


【解决方案1】:

如果我理解您提供的模型,这应该可以工作

from django.db.models import Sum

History.objects.filter(
    type=1,
    id__in=(CarGroup.objects.values('history_id'))
).aggregate(
    total_amount=Sum('amount')
)

【讨论】:

  • 我想获取web_car表中的所有信息。
猜你喜欢
  • 1970-01-01
  • 2016-04-20
  • 2019-10-17
  • 2020-09-12
  • 2016-06-04
  • 2021-07-06
  • 2015-06-25
  • 1970-01-01
相关资源
最近更新 更多