所以我有一个用于报告的mysql数据库。我们正在尝试创建一个查询该数据库的API,以查找存入一定数量的客户:
查询看起来像这样:
SELECT t.`LOGIN`,SUM(t.PROFIT) AS total_deposits,u.`phone`
FROM mt4_trades t join mt4_users u on t.LOGIN = u.LOGIN
where t.CMD=6 and t.COMMENT like 'DP%'
and u.`group` like 'FX%'
group by t.`LOGIN`
having sum(t.PROFIT)>10000;
我执行了 python manage.py inspectdb 以便使用这些字段创建模型。问题在于这些字段来自不同的表。
这是我的模型的样子:
from django.db import models
# Create your models here.
class BigDeposit(models.Model):
login = models.IntegerField(db_column='LOGIN', primary_key=True) # Field name made lowercase.
group = models.CharField(db_column='GROUP', max_length=16) # Field name made lowercase.
profit = models.FloatField(db_column='PROFIT') # Field name made lowercase.
phone = models.CharField(db_column='PHONE', max_length=32) # Field name made lowercase.
class Meta:
managed = False
db_table = '?????'
第一个问题:在这种情况下,我应该在db_table字段中输入什么?
第二个问题:如何执行原始查询以从中创建“ BigDeposit”查询集?
谢谢
答案 0 :(得分:0)
是的,为什么不呢?如果您有贸易和用户模型,请使用外键 他们之间,您的查询最终像 Trade.objects.values_list('login','user__phone')。filter(cmd = 6, comment__startswith ='DP', user__group__startswith ='FX')。annotate(profit_sum = Sum('profit'))。filter(profit_sum__gte = 10000)。
行得通!谢谢!