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的书写方式:
相关文章
相关标签/搜索