首页 > 代码库 > Django进阶Model篇006 - 多表关联查询

Django进阶Model篇006 - 多表关联查询

接着前面的例子,举例多表查询实例如下:

1.查询作战的所有完整信息。

>>> AuthorDetail.objects.values(sex,email,address,birthday,author__name)

2.查询《持续集成实践》这本书的作者姓名,还有出版社的名字

>>> Book.objects.filter(title=持续集成实践).values(authors__name,publisher__name)

3.查询潘晓明写了一些什么书

>>> Book.objects.filter(authors__name=潘晓明).values(title)

4.查询机械工业出版社都出版了一些什么书籍

>>> Book.objects.filter(publisher__name=机械工业出版社).values(title)
>>> publisher = Publisher.objects.get(name=机械工业出版社)
>>> publisher.book_set.all().values(‘title‘)

5.查询机械工业出版社都有哪些作者出过书

>>> Book.objects.filter(publisher__name=机械工业出版社).values(title,authors__name)

 

多表查询技巧:

__:两个下划线可以生成连接查询,查询关联的字段信息

_set:提供了对象访问相关联表数据的方法。但这种方法只能是相关类访问定义了关系的类(主键类访问外键类)。

 

Django进阶Model篇006 - 多表关联查询