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