繁体   English   中英

使用QuerySet的Django子查询

[英]Django subquery using QuerySet

是否可以使用另一个QuerySet在QuerySet上执行子查询?

例如:

q = Something.objects.filter(x=y).extra(where=query_set2)

简短的回答:否。 extra方法不希望在传递查询集

如果你考虑一下,这是有道理的。 查询集是用于表示数据库上的提取操作结果的抽象,而extra是将数据库中的自定义字段附加到查询集的便捷方式。 除非您将extra的基本性质更改为“使用其他查询集进行自定义筛选”,否则这将无效。

我可以用两种方式理解你的问题。

  1. 您可以在过滤器参数中指定多个变量,例如:

     q = Something.objects.filter(x=y, w=z) 
  2. 您想在SQL中进行所谓的“连接”。 这可以通过Django的聚合系统完成,请参阅Django官方文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM