一、关联查询:

通过父表参数获取从表数据,通过从表参数获取父表数据

从表查询主表中的数据

附件:数据表截图

项目表

 接口表

现在要实现的需求如下:

1、查询项目名称中包含’搜狗‘的所属接口信息:

分析:获取的是接口信息,所以Interfaces开头进行查询

2、查询项目负责人中包含’zilv‘的所属接口信息

分析:获取的是接口信息,所以Interfaces开头进行查询

主表查询从表中的数据

3、查询接口名称包含“收藏”所属的项目名称

分析:获取项目信息,所以Projects开头进行查询

查询格式为:

关联字段名称__关联模型类中的字段名称__查询类型

二、通过从表模型对象(已经获取到),如何获取父表数据

1、Interfaces.objects.filter(name__contains='收藏')[0].projects

2、可以通过外键字段先获取父表模型对象(interfaces_obj.projects)

interfaces_obj=Interfaces.objects.get(id=1)

interfaces_obj.projects.name

三、通过父表模型对象(已经获取到),如何获取从表数据

1、Projects.objects.filter(name__contains='搜狗')[0].interfaces.all()

 2、projects_obj=Projects.objects.get(id=1)

projects_obj.interfaces_set.all()

默认可以通过从表模型类名小写_set,返回manager对象,可以进一步使用filter进行过滤

如果在从表模型类的外键字段指定了related_name参数,那么会使用related_name指定参数作为名称

projects_obj=Projects.objects.get(id=1)

projects_obj.interfaces.all()

四、排序

可以使用QuerySet(manager对象).order_by('字段名1','字段名2','-字段名3')

默认为升序asc,可以在字段名称前添加“-”,那么为desc降序

升序(默认为升序)

Projects.objects.filter(Q(name__contains='2') | Q(leader='kb')).order_by('name')

降序

Projects.objects.filter(Q(name__contains='2') | Q(leader='kb')).order_by('-name')

排序(降序、升序混合使用)

qs = Projects.objects.filter(Q(name__contains='2') | Q(leader='kb')).order_by('-name','leader')

ORM多表查询——关联查询相关推荐

  1. Hibernate实现对多个表进行关联查询

    Hibernate实现对多个表进行关联查询? String sTest = "from tBookInfo book, BookSelection sel where book.id = s ...

  2. mysql 不通过关联查询表_mysql中多表不关联查询的实现方法详解

    下面小编就为大家带来一篇浅谈mysql中多表不关联查询的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 大家在使用MySQL查询时正常是直接一个表的查询,要不然 ...

  3. Day4-Mybatis框架(多表的关联查询)

    Day4-Mybatis框架(多表的关联查询) 关联查询 使用背景:项目中可能不止一个表的时候 即多表的时候(表间关系可分为一对一,一对多,多对多) 这时候查询会涉及到来自多个表的操作. 简单的入门代 ...

  4. Mybatis-plus:单表使用关联查询+ResultMap结果映射

    Mybatis-plus:单表使用关联查询+ResultMap结果映射 一:数据表与实体类 二:mapper与mapper.xml 三:service 四:控制器 五:返回结果 一:数据表与实体类 数 ...

  5. Spring Data JPA实现多表的关联查询

    1.Spring Data JPA关系映射 对象关系映射(Object relational mapping)是指通过将对象状态映射到数据库列,来开发和维护对象和关系数据库之间的关系.它能够轻松处理( ...

  6. 使用 Eloquent ORM 使用 with 模型关联查询,如何处理select不同模型的字段(字段名可能相同)

    遇到一个问题,就是articles和article_comments两个数据模型 现在要查出来某个用户的评论列表(列表包含 评论内容article_comments.content.评论时间artic ...

  7. mysql 小表连大表_MySQL 表之间关联查询时,为什么建议小表驱动大表?

    有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多. 一.优化原则 小表驱动大表,即小的数据集驱动大 ...

  8. springboot集成mongoDB高级聚合查询,关联查询

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符? 注意注意注意? 数学运算符 mongoDB案例 ? ? ? ? 插入测试数据 ?mongodb的阶段操作符号 ...

  9. springboot集成mongoDB高级聚合查询,关联查询,lookup.let多条件关联查询。

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符 注意坑 数学运算符 mongoDB案例 插入测试数据 mongodb的阶段操作符号 $match: $count ...

最新文章

  1. Zend Studio添加ThinkPHP代码提示方法
  2. 低端没出路,请接触高端!
  3. APP的UI测试要点
  4. GDCM:读取gdcm::DataSetHelper的测试程序
  5. 迷茫在路口——致我的2014
  6. 使用 Visual Studio 对源代码文件进行哈希处理以确保文件完整性
  7. matlab时域转复频域,信号与系统实验(MATLAB版)实验15连续系统的复频域分析.ppt...
  8. 使用Supervisor监控代码的修改 - cmd安装激活篇
  9. 新东方预计6个月亏损超8亿美元
  10. bzoj3159 决战
  11. JPA-save()方法会将字段更新为null的解决方法
  12. 动态规划 —— 求解通配符问题(wildcard)
  13. python可以做什么工作-python都能干什么用
  14. 实战PHP数据结构基础之队列
  15. Java关键字this与super的用法详解
  16. bex5 php,Bex5开发技巧之如何在列表中显示主键字段
  17. Mac OS Catalina 安装Java6
  18. Django~1 一 什么是web框架?
  19. 硬盘位置不可用因格式变RAW而打不开:文件或目录损坏且无法读取/此卷不包含可识别的文件系统等无法访问错误-CHKDSK被中止
  20. Android 上唯一好用的图片标注 App:马克标注

热门文章

  1. 浅谈电量传感器在数据中心不间断电源中的应用
  2. linux runable进程查询,关于Linux下进程的详解【进程查看与管理】
  3. php加密解密p源码可以吗,论 如何做好PHP的加密解密呐,源码教学
  4. 成功解决tensorflow.python.framework.errors_impl.NotFoundError: FindFirstFile failed for: ../checkpoints
  5. ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化
  6. 成功解决ModuleNotFoundError: No module named 'keras_retinanet'
  7. 【提权思路】绕过SecureRDP限制远程连接
  8. 检测你处于程序员的哪个层级
  9. 移动端双指缩放、旋转
  10. CS190.1x-ML_lab1_review_student