mysql - 依靠相关模型作为混合属性
问题描述
我有一个名为 SectionAttempt 的表,其中有很多 QuestionAttempt
我想显示一个计算字段“total_count”,它是 SectionAttempt 的问题尝试次数,而不加载所有 questionAttempts。
上网查了一下,发现是这样的:
select([func.count()],
QuestionAttempt.__table__.c.section_attempt_id==SectionAttempt.__table__.c.id)
.correlate(SectionAttempt.__table__)
.as_scalar()
我不是 100% 确定为什么会这样,但是当我这样查询时它会起作用:
test_attempt = (SOMEQUERY
.undefer(SectionAttempt.question_attempt_total_count)).one())
我有问题:
- .correlate 在这里做什么。
- 它添加到模型的方式使我不得不导入我的 QuestionAttempt 模型,这很容易出现循环导入问题(如果我必须在我的 QuestionAttempt 模型上做类似的事情怎么办)。如何保留功能,但要么更改为基于字符串的引用(就像我们为关系所做的那样),要么在函数内部(以便我可以在函数内部而不是全局导入问题尝试)
解决方案
推荐阅读
- azure-cdn - 在 Azure CDN 上调用方法 HEAD 是否也会缓存实际资源?
- laravel - Laravel SQLSTATE[HY000] 验证错误
- python - 源代码的圆类中用于半径的测量单位是什么:matplotlib.patches
- c++ - Boost 矩阵的 iterator1 和 iterator2 是什么以及如何使用?
- reactjs - 对于下面给出的代码,状态值(在 Test2.js 上)在 react-native 中没有改变
- omnet++ - 有没有办法在 Omnet 上嗅探/侦听单播数据包/消息?
- php - 将 Magento 升级到 2.2.8 期间的 PHP 扩展问题
- mysql - MySQL多列Sum()在不同/多行中
- emacs - emacs helm:有什么方法可以让它服从模板颜色?
- function - Julia中带参数的映射函数