选择不在Django的另一个表中的值

Gil*_*tes 6 python sql django orm

如何将这个SQL查询转换为Django ORM语句?

SELECT field1, field2, field3
FROM table1
WHERE field1 NOT IN 
(SELECT 2_field1 FROM table2);
Run Code Online (Sandbox Code Playgroud)

请帮忙!:)

PS
table1table2不与有界ForeignKeyManyToMany

voi*_*hos 10

使用两个QuerySets,如文档中所示.

inner_qs = table2.objects.all()
results = table1.objects.exclude(field1__in=inner_qs)
Run Code Online (Sandbox Code Playgroud)

  • 略有改善; 在某些情况下,它会产生差异:`inner_qs = table2.objects.values_list('field1',flat = True)results = table1.objects.exclude(field1__in = inner_qs)`虽然,你应该使用QuerySet方法`raw ()`,如果你想更快地进行查询. (2认同)