064:ORM查詢條件詳解-in和關聯模型查詢

ORM查詢條件詳解-in和關聯模型查詢:

in:
提取那些給定的 field 的值是否在給定的容器中。容器能夠爲 list 、 tuple 或者任何一個能夠迭代的對象,包括 QuerySet 對象。示例代碼以下:spa

result = Article.objects.filter(id__in=[1,4,5])

以上代碼在翻譯成 SQL 語句爲以下:翻譯

SELECT `article`.`id`, `article`.`title`, `article`.`content`, `article`.`category_id` FROM `article` WHERE `article`.`id` IN (1, 4, 5)

實例截圖以下:3d

固然也能夠傳遞一個 QuerySet 對象進去。示例代碼以下:code

    # 全部標題中包含fuck的分類:
    articles = Article.objects.filter(title__icontains='fuck')
    results = Category.objects.filter(article__in=articles)
    for item in results:
        print(item)
    print("#########如下是對應的SQL語句#########")
    print(results.query)

以上代碼的意思是獲取那些文章標題包含 hello 的全部分類。將翻譯成如下 SQL 語句,示例代碼以下:對象

SELECT `category`.`id`, `category`.`name` FROM `category` INNER JOIN `article` ON (`category`.`id` = `article`.`category_id`) WHERE `article`.`id` IN (SELECT U0.`id` FROM `article` U0 WHERE U0.`title` LIKE %fuck%)

具體截圖以下:blog

related_query_name的書寫方式:
相關文章
相關標籤/搜索