本文介绍 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')
此外,只有 LIMIT
、 OFFSET
、 COUNT(*)
、 ORDER BY
和指定列 [即在生成的 QuerySet
上允许切片、
、count()
、exists()
和 order_by()
/values()
]。此外,数据库对组合查询中允许的操作设置了限制。例如,大多数数据库不允许在组合查询中使用 values_list()
LIMIT
或 OFFSET
。
相关用法
- Python Django QuerySet.update_or_create用法及代码示例
- Python Django QuerySet.using用法及代码示例
- Python Django QuerySet.select_related用法及代码示例
- Python Django QuerySet.latest用法及代码示例
- Python Django QuerySet.values用法及代码示例
- Python Django QuerySet.intersection用法及代码示例
- Python Django QuerySet.get用法及代码示例
- Python Django QuerySet.none用法及代码示例
- Python Django QuerySet.exclude用法及代码示例
- Python Django QuerySet.get_or_create用法及代码示例
- Python Django QuerySet.prefetch_related用法及代码示例
- Python Django QuerySet.first用法及代码示例
- Python Django QuerySet.annotate用法及代码示例
- Python Django QuerySet.dates用法及代码示例
- Python Django QuerySet.values_list用法及代码示例
- Python Django QuerySet.select_for_update用法及代码示例
- Python Django QuerySet.order_by用法及代码示例
- Python Django QuerySet.bulk_update用法及代码示例
- Python Django QuerySet.in_bulk用法及代码示例
- Python Django QuerySet.defer用法及代码示例
- Python Django QuerySet.aggregate用法及代码示例
- Python Django QuerySet.reverse用法及代码示例
- Python Django QuerySet.count用法及代码示例
- Python Django QuerySet.exists用法及代码示例
- Python Django QuerySet.explain用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.union。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。