python - 如何在Django orm中执行子查询?

标签 python mysql django orm subquery

django 模型.py

class cdr(models.Model):
    id = models.AutoField(primary_key=True, unique=True, verbose_name='id',)
    disposition = models.CharField(max_length=45, default='')
    did = models.CharField(max_length=50, default='')

    def __unicode__(self):
        return u'%s' % self.id

    class Meta:
        ordering=['-calldate']
        db_table = 'cdr'

MySQL 查询:

select id, did as diddst, count(did) as count, (select count(did) from cdr where disposition='NO ANSWER' and did=diddst) as countnoanswer from cdr where did in (79244576674, 79244576619) group by did;

结果

+------+-------------+-------+---------------+
| id   | diddst      | count | countnoanswer |
+------+-------------+-------+---------------+
| 1011 | 79244576619 |   218 |            71 |
| 1756 | 79244576674 |  1528 |           654 |
+------+-------------+-------+---------------+

如何在 Django orm 中执行这个子查询?请各位 Django 帮帮我!

最佳答案

您必须执行原始查询。

cdr.objects.raw('...')

关于python - 如何在Django orm中执行子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974181/

相关文章:

python - 使用pydoop将文件复制到hdfs

python - smtplib 导入 email.utils 错误

PHP 和 MYSQL 将信息插入数据库,不起作用。

python - 在同一项目中的应用程序之间传递 url

django - 在项目中导入 celery 失败,在 manage.py shell 中工作(有点)

python - Django 将服务器日期转换为本地日期

python - Django - 查询重复/低效

mysql - 何时(不)在 JOIN 语句中使用子查询?

php - 尝试使用 Android 和 PHP 插入 MYSQL 时出错

Django:如何返回原始响应