码迷,mamicode.com
首页 > 其他好文 > 详细

ORM多表分组、F与Q查询

时间:2018-07-12 23:50:09      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:none   mil   abc   Nid   name   not   cdc   tle   family   

编辑本博客

一、分组查询

先连接表,再分组查询

需求:查询每一个出版社出版的名称以及书籍个数

SQL连接表:

技术分享图片
SELECT * FROM app_book INNER JOIN app_publish on app_book.publish_id = app_publish.nid
View Code

技术分享图片

ORM连接表:

技术分享图片
Book.objects.values("publish").values()
View Code

技术分享图片

SQL链表后分组:

技术分享图片
SELECT count(title),app_publish.name FROM app_book INNER JOIN app_publish on app_book.publish_id = app_publish.nid GROUP BY publish_id
View Code

技术分享图片

ORM链表后分组,方式一:

技术分享图片
Publish.objects.values("name").annotate(Count("book__title"))
View Code

技术分享图片

ORM链表后分组,方式二:

通过values拿所需数据即可

技术分享图片
Publish.objects.values("nid").annotate(c=Count("book__title")).values(name,"c")
View Code

技术分享图片

练习二:

查询每一个作者的名字以及出版过的书籍的最高价格

SQL语法:

技术分享图片
SELECT app_author.name,max(price) FROM app_author INNER JOIN app_book_authors ON app_author.nid = app_book_authors.author_id INNER JOIN app_book ON app_book_authors.book_id = app_book.nid ORDER BY app_author.nid
View Code

技术分享图片

ORM操作:

 

ORM多表分组、F与Q查询

标签:none   mil   abc   Nid   name   not   cdc   tle   family   

原文地址:https://www.cnblogs.com/yaya625202/p/9302226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!