python - 使用内连接将 SQL 转换为 Django orm
问题描述
我正在尝试将此 SQL 查询传递给 django ORM,但是我的内部连接有问题,请您帮帮我,谢谢
我尝试在另一个查询中使用一个查询,但我无法比较 GT 过滤器的注释
Model.objects.filter(
status=Model.FAILED,
).filter(
created__gt=Model.objects.filter(
status=Model.APPROVED,
is_active=True,
).annotate(
approved_created=F('created')
).values_list('approved_created')
).select_related('invoice').values_list('pk')
这是我要转换的 SQL
SELECT * FROM model IA1
INNER JOIN model IA2 ON IA1.invoice_id=IA2.invoice_id
WHERE IA1.status = 'FAILED'
AND IA2.status = 'APPROVED'
AND IA2.is_active = True
AND IA1.created > IA2.created;
模型定义
class Model(models.Model):
APPROVED = 'APPROVED'
FAILED = 'FAILED'
IN_PROCESS = 'IN_PROCESS'
PENDING = 'PENDING'
STATUS_CHOICES = (
(APPROVED, APPROVED),
(FAILED, FAILED),
(IN_PROCESS, IN_PROCESS),
(PENDING, PENDING)
)
status = models.CharField(
max_length=20,
choices=STATUS_CHOICES,
blank=False,
null=False,
default=PENDING
)
invoice = models.ForeignKey(
Invoice,
on_delete=models.PROTECT,
blank=False,
related_name='assignments'
)
解决方案
推荐阅读
- python - 在 Python 代码中捆绑第三方 .exe 并生成另一个可移植的 .exe
- sql-server - 返回包含特殊字符的字符串
- python - 将 Python Flask Web API 部署到 Azure 门户时出现依赖性问题
- javascript - AngularJS - 将数据推送到数组时未更新 ng-repeat 和绑定
- c++ - c_str() 与 data() 在返回类型方面
- sql - Ms Access Query 允许空行
- tensorflow - 为什么在我自己的数据集上使用 ssd_mobilenet_v1_pnp 的结果很差?
- python - XML 格式不正确
- python - Python:查找任意曲线的拟合参数数量
- javascript - 使用基于复选框的 javascript更改/附加 html标记属性