Django连表查询

本文深入探讨了Django框架中的连表查询技术,详细解释了如何使用`select_related()`和`prefetch_related()`进行高效的数据检索。通过实例,展示了如何减少数据库交互次数,提升查询性能,以及在复杂查询场景下如何结合使用这两个方法实现数据的联合查询。
摘要由CSDN通过智能技术生成
```bash
外键字段的增删改查
 #一对一,一对多,跨表"""一个作者对应多本书籍add在第三张关系表中添加数据  括号类即可以传主键字段也可以传数据对象,并且都支持传多个"""增:author_obj=models.Author.object.filter(pk=1).first()  author_obj.books.add(1,2)"""一个作者只针对了一个作者  但是set里面传入的数据应该是可迭代对象列表或者元祖,  整数等不可使用"""改:  author_obj.books.set([1,])  author_obj.books.set([1,2])"""remove移除指定不需要的数据,()不能跟元祖或者列表,支持传入多个数据"""删:  author_obj.books.remove(1)清空数据:  author_obj.books.clear()#清空当前作者和书籍的所有绑定关系()不需要传入任何数据
```
正反向查询的概念

```bash
正向查询
	书籍对象查出版社对象  外键字段在书表中#正向查询
 	书籍对象查作者对象  外键字段在书表中
  作者对象查作者详情 外键字段在作者中
  
  
反向对象
	出版社查书籍对象  外键字段不在出版社表中
  作者查书籍对象   外键字段不在作者表中
  作者详情查作者   外键字段不在作者详情
  
 """
 总结:
 	正反向的判断依据是,外键字段是否有直接关系
 	口诀:正向查询按外键字段,反向查询按表名小写。。。。
 """
```
基于对象的跨表查询(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值