简体   繁体   English

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

[英]python Django - Convert SQL Query to ORM Query

I want sql query to orm 我想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'))))

This can not be done by setting the output_field ... I can not solve it even if I apply variously from FloatField to Char through Concat. 这不能通过设置output_field来完成。即使我通过Concat从FloatField到Char进行各种应用,我也无法解决。 I leave a comment on whether I can get advice. 我对能否获得建议发表评论。

You seem to be overcomplicating things. 您似乎使事情复杂化了。 You just need a query on Car which annotates the related Histories where type=3. 您只需要在Car上查询一个注释,便可以在type = 3处注释相关的历史记录。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM