python-Django将SQL查询转换为ORM查询

2024-04-24 09:15:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我要sql查询到orm

SELECT id, title,
(SELECT SUM(AMOUNT) FROM web_history A WHERE A.car_id = B.id AND type = 3)
FROM web_car B;


histories = History.objects.filter(car=OuterRef('pk'), type=3)
cars = Car.objects.annotate(count=Subquery(histories.annotate(a=Sum('amount'))))

这不能通过设置输出字段来完成。。。即使我通过Concat从FloatField应用到Char,也无法解决这个问题。 我对是否能得到建议发表意见。你知道吗


Tags: fromwebidsqlobjectstitletypeorm
1条回答
网友
1楼 · 发布于 2024-04-24 09:15:22

你好像把事情搞得太复杂了。您只需要对Car进行一个查询,其中注释type=3的相关历史记录。你知道吗

Car.objects.filter(history__type=3).annotate(count=Sum('history__amount'))

相关问题 更多 >