나는 세 개의 테이블 사이에 관계가 있습니다.
Customer --> Order --> OrderLine
대부분의 주문 라인으로 주문한 고객을 알고 싶습니다. 순수한 SQL을 사용하여 다음 쿼리를 계속 사용합니다.
SELECT a.*, COUNT( c.id ) AS total FROM customer AS a
LEFT JOIN order AS b ON a.id = b.customer_id
LEFT JOIN order_line AS c ON b.id = c.order_id
GROUP BY a.id ORDER BY total DESC;
나는 여기서 내 문제에 대한 해결책이 될 수 있다고 생각하는 또 다른 질문을 보았지만 실제로 여러 관계에 대해 작업하는 답을 이해할 수 없습니다.
이렇게하면 고객 당 최대 주문 라인을 얻을 수 있습니다.
from django.db.models import Max
custs = Customer.objects.annotate(max_order_lines=Max(order__orderline)).values('id', 'max_order_lines').order_by('-max_order_lines')
max_cust = custs[0]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다