代码改变世界

分组条件 (跨表查询)

2018-10-29 16:39  冻奶香甜玉米片  阅读(190)  评论(0编辑  收藏  举报

以每一个后面的表的主键作为group by的分组条件

(即把书籍替换为某表)

 

 

 总结:
# 总结 跨表的分组查询的模型:
# 每一个x的表模型.objects.values("pk").annotate(聚合函数(关联表__统计字段)).values("表模型的所有字段以及统计字段")(只能显示原表的每一个属性加统计出来的属性值,原表指的是x表)
# 每一个x的表模型.objects.annotate(聚合函数(关联表__统计字段)).values("表模型的所有字段以及统计字段")

 

# 统计不止一个作者的图书
ret=Book.objects.values("pk").annotate(c=Count("authors__name")).filter(c__gt=1).values("title","c")
print(ret)、
分组之后再过滤
等于sql语句中的having count(app01_author.name)>1