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 ORM 的 From 子句中编写子查询