我想从多个表中选择原始数据。
例如
query = tempmodel.objects.raw('select empid as id,employee.empid,ccmaster.cscid from employee
left join ccmaster
on employee.cscid = ccmaster.cscid'
我需要为tempmodel
创建一个包含所有必填字段的新模型吗?
我已经尝试过使用cursor.execute
,但这只会返回结果值,而不会返回该字段。
如何为多表选择原始数据?
我已经检查了那个=> raw sql with multiple table,但老实说,我不明白答案。
答案 0 :(得分:1)
raw()自动将查询中的字段映射到模型上的字段。 (https://docs.djangoproject.com/en/2.2/topics/db/sql/#mapping-query-fields-to-model-fields)
我建议您创建一个包含所有必填字段的模型,并将managed
元选项设置为False(https://docs.djangoproject.com/en/2.2/ref/models/options/#managed)
即
class TempModel(models.Model):
field = models.ForeignKey(Question, on_delete=models.CASCADE)
# ...
class Meta:
managed = False
(可选)除此之外,也许您可以使用自定义模型管理器(https://docs.djangoproject.com/en/2.2/topics/db/managers/#adding-extra-manager-methods)