如何查询
select name where id in (select id from ...)
使用Django ORM?我想我可以用一些循环来获得一些结果,而另一个循环用于,为了使用这个结果,但是我认为这不是实际的工作,更简单的是生成一个查询sql,我认为在python中使这个应该在python中更简单
我有这些型号:
^{pr2}$我需要得到付款的发票过滤器按商店的身份证,付款日期。
我在mysql中使用select in (select ...)
进行这个查询。这是一个简单的查询,但使用django orm进行了一些类似的查询,我只想做一些循环,但我不喜欢这个想法:
invoiceXstore = invoice.objects.filter(local=3)
for a in invoiceXstore:
payments = invoicePayments.objects.filter(invoice=a.id,
date__range=["2016-05-01", "2016-05-06"])
mysql原始查询是一个子查询。在
在mysql中,这通常比内部联接(reference:[http://dev.mysql.com/doc/refman/5.7/en/rewriting-subqueries.html])慢,因此您可以将原始查询重写为一个类似于1的内部联接。在
^{pr2}$然后可以使用WHERE子句应用筛选。在
您尝试过的循环查询方法确实有效,但不建议使用,因为它会导致执行大量查询。你可以这样做。在
我不太清楚“本地”代表什么,因为您的模型没有显示任何类似的字段。请使用正确的字段更新模型或根据需要编辑查询。在
若要倾斜大约{a3},请参阅此https://docs.djangoproject.com/en/1.9/ref/models/querysets/#range
可以在Django ORM中使用双下划线(
__
)遍历ForeignKey
关系。例如,您的查询可以实现为:我猜你在这里发帖之前把你的课程改名为英语。在这种情况下,您可能需要将第一部分更改为
factura__local=3
。在作为补充说明,建议将您的模型类重命名为
InvoicePayments
(大写I
),以更符合PEP8。在相关问题 更多 >
编程相关推荐