在SQL中,我可以像这样累加两个计数:
SELECT (
(SELECT count(*) FROM a WHERE val=42)
+
(SELECT count(*) FROM b WHERE val=42)
)
如何使用Django ORM执行此查询?
我最接近的方法是:
a.objects.filter(val=42).order_by().values_list('id', flat=True).union(
b.objects.filter(val=42).order_by().values_list('id', flat=True)
).count()
如果返回的计数较小,则这很有效,但如果数据库必须在内存中保留大量行以进行计数,则似乎不太好。