- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在将我们的服务器从 Java 切换到 Python (Django) 并使用 ORM 重新创建我们的 SQL 查询,其中一个被证明是困难的,因为我需要加入同一张表。下面是查询
SELECT U1.suser, COUNT(U1.id) FROM United U1 INNER JOIN United U2 ON
U1.sUser = U2.pUser WHERE U2.sUser IN (select sUser from united where pUser = '105660')
and U1.pUser = '105660' and U1.sUser IN ('580664','1015396') GROUP BY U1.id, U1.suser
这是我的模型:
class United(models.Model):
id = models.IntegerField(primary_key=True)
puser = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, db_column='puser')
suser = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, db_column='suser',
related_name='secondary_united')
date = models.DateTimeField(max_length=34, blank=True, null=True, auto_now_add=True)
class Meta:
db_table = 'United'
unique_together = (('puser', 'suser'),)
查询是为了找到我(调用用户)和他们所有 friend (ID 列表)之间的相互连接数
查询按照我希望的方式使用直接 SQL(尽管由于这个主键错误,我无法使用 .raw() 方法让它工作)
django.db.models.query_utils.InvalidQuery: Raw query must include the primary key
但我想找到一种使用 ORM 来完成它的方法。
最佳答案
我假设您尝试调用查询作为
United.objects.raw(sql)
正如您提到的那样,这确实会产生错误,因为您的投影 U1.suser, COUNT(U1.id)
没有 id 列。你需要把它改成这样
SELECT U1.id, U1.suser, COUNT(U1.id) FROM United U1 INNER JOIN United U2 ON
U1.sUser = U2.pUser WHERE U2.sUser IN (select sUser from united where pUser = '105660')
and U1.pUser = '105660' and U1.sUser IN ('580664','1015396') GROUP BY U1.id, U1.suser
请注意,它必须是 U1.id
而不是 U2.id
因为您是在 U1.id
上分组的
诚然,使用 ORM 编写此查询有点困难。由于您正在加入 United 本身,而 Django ORM 加入通常仅通过外键或仅通过多对多字段。
关于python - 使用 Django ORM 加入同一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449248/
请提及(大)ORM 和微 ORM 之间的区别。与大型 ORM 相比,微型 ORM 有何优势?例如。 Entity Framework ORM 和 dapper micro ORM 之间的区别。 最佳答
我有一个名为 User 的模型。我可以从 User 模型扩展另一个模型 Admin/mod 吗?我找到了续集文档,但我没有找到 最佳答案 是的,查看 Associations documentatio
你对数据访问层有什么建议?使用 Entity Framework 和 Hibernate OR 代码生成器(如 Subsonic、.netTiers、T4 等)等 ORM? 最佳答案 对我来说,这很简
我编写了一个代码生成器,它为给定的 SQL Server/CE 数据库生成 POCO 和存储库。没什么花哨的,只有使用经典 ADO.Net 的简单 CRUD 程序。我的问题是,为什么我应该使用像 L2
我扩展了Android.Application类,以便保持状态(将应用程序用作单例)。 但是,我现在想使用Sugar ORM库简化我的数据库访问,但是Sugar文档(http://satyan.git
我正在阅读 OOP 设计模式和框架设计,发现自己对术语 ORM 和持久性框架之间的区别有点不确定。 ORM 是 PF 的一种吗?您可以期待两者有哪些不同的功能? 最佳答案 我将 ORM 定义为将任何数
在 Jboss EAP 7.0 中加载 orm 文件时,我遇到了以下问题,但它在 Weblogic 中工作。 原因:org.hibernate.boot.MappingException:无法解析显式
我一直在研究 Massive ORM。不要忘记,只是看,我还没有做任何编码。 我对保存交易数据的可能性感兴趣。我已经看到可以在一个事务中在同一个表中保存 20 行。但是当我想在单个交易中保存一个订单并
好的。我刚刚开始在我的 Coldfusion 应用程序中使用 ORM。到现在为止一切都很顺利。我遇到了这个障碍。我有这两张表: 这是我用来将数据加载到页面中的代码。 if 的第二部分是默认加载,第一部
我有可以分配许多类别的帖子。所以它是一个多对多的关系。 我想计算每个类别中有多少帖子(符合特定标准),然后对结果进行排序。 我有: Select ( Select count(post.id)
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 8年前关闭。 Improve t
我正在评估如何使用后端的分布式键/值存储来实现某些东西。我希望在支持对象模型的键/值之上有一个层,该对象模型类似于我从对象关系映射器中获得的模型。 任何人都可以指出其他人这样做的任何例子吗?我主要是在
我正在使用 kohana ORM 以便从数据库中获取一些结果。我的问题是:即使我查阅了文档,我也找不到只选择我感兴趣的列的方法。更明确地说,我有: $sale_stock = Model::facto
在 ORM 之前,如果我想显示规范化表的组合输出,我只需执行快速 CFQUERY,将表连接到我想要的字段并显示输出。我只是无法使用 ORM 来解决它。 例如这两个表: customers (id,
异步 ORM 的真正含义是什么?它与常规 ORM 的行为有何不同? 它可以用在什么地方? 最佳答案 这意味着对它的调用会立即返回(不会阻塞)。您会在稍后的某个时间点获得结果,很可能是由于回调触发。
虽然代码优先非常适合部署和开发,但我看不出如何在投入生产后以代码优先的方式插入对域模型所做的更改。 我如何处理我们在生产过程中积累的数据? 我是否应该手动将数据从 A 版架构迁移到 B 版架构?我是否
像学说(事件记录)和Xyster(数据映射器),有什么区别? 最佳答案 不同之处在于域对象与数据访问层的分离程度。使用 ActiveRecord,它是一个对象,这使它变得非常简单。特别是如果您的类一对
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我在 ColdFusion 中有一个持久实体,我需要更新一个属性 property name="createdDateTime" ormtype="date"; 到 property name="cr
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!