MySQL 查询:如何在 Django 中编写?

Posted

技术标签:

【中文标题】MySQL 查询:如何在 Django 中编写?【英文标题】:MySQL query: how write in Django? 【发布时间】:2019-07-30 15:53:02 【问题描述】:

我是 Django 的初学者:如何编写这个 mysql 查询来组合不同的表?

(SELECT "fatture_produzione" as tab, id, numero, data, iva, totale, azienda_id as azienda, id_fornitori_id as fornitori FROM fatture_fatture_produzione) 
UNION 
(SELECT "fatture_fornitori" as tab, id, numero, data, iva, totale, azienda_id as azienda, fornitori_diversi_id as fornitori FROM fatture_fatture_fornitori) 
UNION 
(SELECT "fatture_professionisti" as tab, id, numero, data, iva, totale, azienda_id as azienda, professionisti_id as fornitori FROM fatture_fatture_professionisti) 
order by data

在我看来,我试试这个:

fatture_fornitori_var = fatture_fornitori.objects.values( id='id', data='data', numero='numero', totale='totale', iva='iva', azienda='azienda_id', fornitori='fornitori_diversi_id').filter(azienda_id=azienda).order_by("data")

fatture_professionisti_var = fatture_professionisti.values(id='id', data='data', numero='numero', totale='totale', iva='iva', azienda='azienda_id', fornitori='professionisti_id').objects.filter(azienda_id=azienda ).order_by("data")

fatture_produzione_var = fatture_produzione,values(id='id', data='data', numero='numero', totale='totale', iva='iva', azienda='azienda_id', fornitori='id_fornitori_id').objects.filter(azienda_id=azienda).order_by("data")

并且...使用 itertools:

fatture_dare = sorted(
    chain(fatture_fornitori_var, fatture_professionisti_var, fatture_produzione_var),
    key=attrgetter('data'))

但我无法在模板中输出:

% for fattura in fatture_dare %
<tr role="row" class="odd">
   <td><nobr> fattura.data|date:"d-m-Y" </nobr></td>
   <td>fattura.azienda</td>
   <td>fattura.numero</td>
</tr>   
% endfor %

谢谢!

【问题讨论】:

你能展示你的models.py文件吗?人们通常使用 union 而不是 itertools 来执行此操作。 【参考方案1】:

使用union

fatture_dare = fatture_fornitori_var.union(fatture_professionisti_var, fatture_produzione_var).order_by("data")

【讨论】:

以上是关于MySQL 查询:如何在 Django 中编写?的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中使用 mysql 查询或等效项

如何在 django ORM 的 From 子句中编写子查询

Django:如何编写查询以使用多列进行排序,通过模板显示

Django admin 在 mysql 中做了很多重复的查询

如何编写查询以在 django 的 json 字段中查找值

Django:如何编写查询以使用多列进行排序,通过模板显示