猿问

如何在 django 中编写子查询

是否可以在 django 中进行以下 sql 查询


select * from (

    select * from users

) order by id

这只是最小的例子。我有一个很长的子查询而不是select * from users. 但我不明白如何将它插入子查询。


更新:来自doc的子查询不适合,因为它构建了以下请求


SELECT "post"."id", (

    SELECT U0."email"

    FROM "comment" U0

    WHERE U0."post_id" = ("post"."id")

    ORDER BY U0."created_at" DESC LIMIT 1

) AS "newest_commenter_email" FROM "post"

并且这个子查询只能返回一个值(.values('email'))。建设select (subquery) as value from table代替select value from (subquery)


尚方宝剑之说
浏览 86回答 2
2回答

Qyouu

制作子查询本质上是设置两个查询并使用一个查询来“提供”另一个查询:from django.db.models import Subqueryall_users = User.objects.all()User.objects.annotate(the_user=Subquery(all_users.values('email')[:1]))这与您提供的内容或多或少相同。您可以在这里尽可能复杂,但使用子查询的最佳来源是文档

三国纷争

我会使用 python 连接器连接到 postgreSQL -http://www.postgresqltutorial.com/postgresql-python/query/这就是我为 mysql 所做的,我认为没有尝试使用 postgresql
随时随地看视频慕课网APP

相关分类

Python
我要回答