当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django QuerySet.union用法及代码示例


本文介绍 django.db.models.query.QuerySet.union 的用法。

声明

union(*other_qs, all=False)

使用 SQL 的 UNION 运算符组合两个或多个 QuerySet 的结果。例如:

>>> qs1.union(qs2, qs3)

UNION 运算符默认只选择不同的值。要允许重复值,请使用 all=True 参数。

union()intersection()difference() 返回第一个 QuerySet 类型的模型实例,即使参数是其他模型的 QuerySet 。只要 SELECT 列表在所有 QuerySet 中都相同,则传递不同的模型就可以工作(至少类型,只要类型的顺序相同,名称就无关紧要)。在这种情况下,您必须使用来自 QuerySet 方法中的第一个 QuerySet 的列名称应用于生成的 QuerySet 。例如:

>>> qs1 = Author.objects.values_list('name')
>>> qs2 = Entry.objects.values_list('headline')
>>> qs1.union(qs2).order_by('name')

此外,只有 LIMITOFFSETCOUNT(*)ORDER BY 和指定列 [即在生成的 QuerySet 上允许切片、 count() exists() order_by() values() / values_list() ]。此外,数据库对组合查询中允许的操作设置了限制。例如,大多数数据库不允许在组合查询中使用 LIMITOFFSET

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.union。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。