当前位置: 首页 > 面试题库 >

Django等效于使用INNER JOIN的SQL查询-子句

荆梓
2023-03-14
问题内容

我想知道使用INNER JOIN -clause的SQL查询的django等效项。我有两个与ForeignKey链接的模型。

class Item(models.Model):
    item_name = models.CharField(max_length=100)
    item_is_locked = models.BooleanField(default=False)

class Request(models.Model):
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    item_owner = models.ForeignKey(settings.AUTH_USER_MODEL)
    message_body = models.TextField(max_length=5000, null=True)

我想从“表”中将“ item_is_locked”值设置为false的请求表中获取字段

如果使用SQL查询,我将使用以下代码:

SELECT Request.item_owner,Request.message_body FROM Request INNER JOIN Item ON Request.item_id=Item.id AND Item.item_is_locked=False;

问题答案:

您可以使用filteronly获得所需的结果。

尝试:

Request.objects.filter(item__item_is_locked=False).only('item_owner', 'message_body')


 类似资料:
  • 问题内容: 在django中,此SQL语句的等效项是什么? 如何在Django中实现呢?我试过了 但这是行不通的。我该如何执行呢? 问题答案: 使用或(不区分大小写): SQL等效为

  • 问题内容: 您是否可以在ElasticSearch中逻辑上嵌套查询,所以一个查询的输出就是另一个查询的输入。另一种询问方式是如何将查询链接或管道连接在一起? 这应该类似于SQL中的IN运算符或子查询 即:-选择au_lname,au_fname,标题(从pubs.dbo.authors中选择au_lname,au_fname,au_id,其中state =’CA’)或 从AdventureWork

  • 问题内容: 您将如何证明两个查询在功能上是等效的,例如它们将始终都返回相同的结果集。 由于在执行此操作时会想到一个特定的查询,因此最终按照@dougman的建议进行操作,在有关表的约10%的行中进行比较并比较结果,以确保没有不合适的结果。 问题答案: 最好的办法是根据给定的一组输入比较两个查询输出,以查找任何差异。要说它们对于所有输入将始终返回相同的结果,实际上取决于数据。 对于Oracle,最好

  • 问题内容: 我一直在大量阅读有关SQL SERVER LIMIT子句的替代方法。太令人沮丧了,他们仍然拒绝适应它。无论如何,我真的没办法解决这个问题。我要转换的查询是这样的… 任何帮助将不胜感激,谢谢。 问题答案: 在SQL Server 2012中,支持ANSI标准/ 语法。我在博客上发表了这篇文章,这是官方文档(这是的扩展)。为SQL Server 2012转换的语法为: 在此之前,您需要使用

  • 问题内容: 我的SQL代码如下: 等效的linq表达式是什么? 问题答案: 我第一次尝试在 来源 LINQ to SQL中的NOT IN子句

  • 本文向大家介绍MySQL LIMIT子句是否等效于SQL SERVER?,包括了MySQL LIMIT子句是否等效于SQL SERVER?的使用技巧和注意事项,需要的朋友参考一下 首先,我们需要创建一个表来了解limit子句(对于SQL Server来说是我们想要的)。我们将在CREATE命令的帮助下创建一个表。 建立表格 之后,让我们将记录插入表中- 在SELECT语句的帮助下显示所有记录- 以