django-orm django-orm 使链接查询(LEFT JOIN)的条件 写在 ON 之后,而不是 WHERE


直接上代码:

注:FilteredRelation 不能使用嵌套查询。

from django.db.models import Q,FilteredRelation

class Books(Model):
    id = ...
    book_name = ...
    author = models.ForeignKey('apps.Author')

class Author(Model):
    id = ...
    author_name = ...
    sex = ...


Author.objects.annotate(b = FilteredRelation("books", condition=Q(books__book_name = "盗墓笔记"))).filter(id = 10)
SELECT 
    * 
FROM 
    author 
    LEFT JOIN books b ON b.`author` = author.id AND b.book_name = "盗墓笔记"
WHERE 
    author.id = 10


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM