Python3之Django Web框架的双下划线跨表查询,聚合查询,分组查询
来源:互联网 发布:山姆.维特维奇 知乎 编辑:程序博客网 时间:2024/06/06 20:39
from django.db import models# Create your models here.class Book(models.Model): bid = models.AutoField(primary_key=True) bname = models.CharField(max_length=32) bpub_date = models.DateField(auto_now_add=True) bprice = models.DecimalField(max_digits=5, decimal_places=2) author = models.ManyToManyField('Author') publisher = models.ForeignKey('Publisher') def __str__(self): return self.bnameclass Author(models.Model): aid = models.AutoField(primary_key=True) aname = models.CharField(max_length=32) aqq = models.IntegerField() publisher = models.ForeignKey('Publisher') def __str__(self): return self.anameclass AuthorDetail(models.Model): adid = models.AutoField(primary_key=True) aage = models.IntegerField() atel = models.IntegerField() author = models.OneToOneField('Author')class Publisher(models.Model): pid = models.AutoField(primary_key=True) pname = models.CharField(max_length=100) ptel = models.IntegerField() paddr = models.CharField(max_length=1000)
双下划线跨表查询:
正向查询: 根据本对象所在字段可以查出对应的对象及对象的属性; models.Book.objects.filter(author__aname='egon').values('publisher__pname ')反向查询: 和正向是一样的,只是查找的时候直接用类名,不需要加_set即可;
聚合查询:
from django.db.models import Avg,Count,Max,Min,Summodels.Book.objects.aggregate(Avg('price'))
分组查询(annotate的意思是注解,可以产生一个新的字段给对象用):
from django.db.models import Avg,Count,Max,Min,Sum#按照每一本书分组:models.Book.objects.annotate(book_count=Count('bid'))#按照特定的字段分组:models.Book.objects.values('publish__pid').annotate(book_count=Count('bid'))
阅读全文
0 0
- Python3之Django Web框架的双下划线跨表查询,聚合查询,分组查询
- Django的聚合查询
- Elasticsearch分组聚合-查询
- Python3 之 Django Web框架优化查询和Form组件(一)
- Solr分组聚合查询之Facet
- Solr分组聚合查询之Group
- Solr分组聚合查询之StatsComponent
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- Hibernate的查询 标准(Criteria--Projections)查询----- 聚合和分组
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- Hibernate的查询 标准(Criteria)查询 聚合和分组
- mysql分组查询聚合函数
- Hibernate-分组查询、聚合函数
- MySQL中的分组聚合查询
- 【0042】SQL查询--分组聚合
- 聚合函数和分组查询
- sql多表查询之分组查询
- 递归函数
- asp.net ajax使用C#后台代码(无参数)
- Kubernetes和Spring Cloud哪个部署微服务更好?
- Android 软键盘弹出时把布局顶上去,控件乱套解决方法
- JS实现自动倒计时30秒后按钮才可用
- Python3之Django Web框架的双下划线跨表查询,聚合查询,分组查询
- c#简单类型
- C#里氏转换以及练习
- MyBatis的逆向工程
- ES6-字符串扩展-标签模板
- 在Windows下为PHP5.6安装redis扩展
- microsoft edge地址栏无法复制死机解决方法
- 文件上传
- BeautifulSoup库的使用