28.多表查询——跨关联关系的多表查询

Posted 孤寒者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28.多表查询——跨关联关系的多表查询相关的知识,希望对你有一定的参考价值。

多表查询—跨关联关系的查询

**Django 提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。 若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:
**

上实战训练——更直观理解:

(得到的都是QuerySet型数据!)

from django.http import HttpResponse

from .models import Department, Student, Course, Stu_detail


def add_user(request):
    # 1.查询学院名为‘北大’的学生的信息        (注意是两个下划线,可以获取到其对应的属性)
    s_all = Student.objects.filter(department__d_name='北大')
    print(s_all)

    # 它还可以反向工作。若要引用一个“反向”的关系,只需要使用该模型的小写的名称!!!

    # 2.查询学生名字中包含'小'的学生的学院信息
    d_all = Department.objects.filter(student__s_name__contains='小')
    print(d_all)

    # 3.查询学号为1的学生的所有的课程
    c_all = Course.objects.filter(student__s_id=1)
    print(c_all)

    # 4.查询报了课程3的所有学生
    stu_all = Student.objects.filter(course__c_id=3)
    print(stu_all)

    # 5.查询报了'python'课程的学生的所属学院的信息
    cou_all = Department.objects.filter(student__course__c_name='python')
    print(cou_all)

    return HttpResponse("插入数据成功!")

❤️可以扫码关注本人公众号——任何问题都可在公众号提问(定时有专人解答);并且不定时更新干货文。欢迎关注哦!❤️

以上是关于28.多表查询——跨关联关系的多表查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的多表关联查询

SpringData JPA多表关联操作

Django 之多表查询 与多表的使用

ORM多表查询下

ABP 数据库 -- ABP&EF中的多表关联查询

Oracle中的多表查询