本文介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
