Django Query:如何使用sql“union”和“not in”函数

时间:2014-03-17 13:01:59

标签: python django django-queryset

如何使用union和"而不是" django查询中的函数。我搜索过它但找不到任何例子

select id,address
    from tbl_nt
    where st_id in (1,2) and name = 'foo'
    union
    (select d.id,d.addrses from tbl_nt_123 d
    where d.name='foo' and condition_id not in (select condition_id 
    from tbl_conditions 
    where version_id = 5)

我已经尝试了这个查询较低的部分,但没有工作

tbl_nt_123.objects.values_list('id','address').exclude(condition_id=tbl_conditions 
   .objects.filter(version_id=5).values_list('condition_id',flat=True))

我该怎么做?

请参考我一些好的链接或书籍,以了解提前django查询。

谢谢

1 个答案:

答案 0 :(得分:7)

可能你应该只添加__in查找修饰符:

tbl_nt_123.objects.values_list('id','address').exclude(
    condition_id__in=tbl_conditions.objects.filter(version_id=5).values_list('condition_id',flat=True))

对于联盟,您可以使用|运算符伪造它。

union = queryset1 | queryset2