2017-12-30 7 views
0
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; 

Es ist sehr schwierig, die obige Abfrage zu konvertieren mit Anmerkungen versehen orm 1. orm wird automatisch durch Gruppe erstellt durch. 2. Es ist schwierig, eine Unterabfrage in den 'in' Zustand zu setzenPython Django - Konvertieren SQL Query zu ORM Query (Subquery)

bitte helfen.

+1

nur rohe Abfragen verwenden und damit arbeiten sollte .. erfolgen (https://docs.djangoproject.com/en/2.0/topics/db/sql /) –

+0

Können Sie Ihre Modelle teilen? – maverick

Antwort

0

Wenn ich die Modelle, die Sie präsentiert verstehen, diese

from django.db.models import Sum 

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

Ich möchte alle Informationen in der web_car Tabelle erhalten. –