Django在/不在查询中

我试图弄清楚如何在Django中编写“不在”风格的查询。例如,我正在考虑的查询结构将如下所示。

select table1.* 

from table1

where table1.id not in

(

select table2.key_to_table1

from table2

where table2.id = some_parm

)

假设模型名为table1和table2,django语法会是什么样?

回答:

table1.objects.exclude(id__in=

table2.objects.filter(your_condition).values_list('id', flat=True))

排除功能的作用类似于Not你要查询的运算符。该属性flat = True告诉table2查询以返回value_list一级列表。因此,…最后,你IDs将从table2中获得列表,你将用该列表定义用户中的条件table1,该条件将被exclude函数拒绝。

以上是 Django在/不在查询中 的全部内容, 来源链接: utcz.com/qa/413912.html

回到顶部