Django ORM内部联接

用户名

我无法使用Django ORM执行此查询。如何进行内部联接,如何执行此查询并仅返回我想要的列?

SELECT     establecimiento.nombre, categoria.titulo
FROM         establecimiento INNER JOIN
                      categoria ON establecimiento.categoria = categoria.id
彼得·德格洛珀

根据注释中响应pdxwebdev的信息(您声明了外键字段),这很简单。Django自动执行外键关系所需的许多联接行为。

为了精确地复制该查询,包括选择只有两个字段从加入,任何的valuesvalues_list或者only应该这样做取决于你想回到什么Python对象。例如,这是一个values用于检索字典的可迭代查询集的查询

Establecimiento.objects.values('nombre', 'categoria__titulo')

values_list将检索元组而不是字典,only并将检索Establecimiento除两个模型字段以外的所有模型字段的实例(它们尚未从数据库中检索出来,但将根据需要进行查找)。

当您使用这种__方式遵循外键关系时,Django会自动进行内部联接。

您也可以select_related在查询集上使用它来要求它进行联接,即使您没有检索特定字段也是如此。例如:

Establecimiento.objects.select_related('categoria')

这将产生一个查询SELECT * from ...,并返回一个Establecimiento实例集的查询集,这些实例的categoria数据已经加载到内存中了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django ORM内部联接

来自分类Dev

具有多个内部联接的Django ORM查询

来自分类Dev

内部联接子查询Django ORM等效项

来自分类Dev

Django内部联接

来自分类Dev

Django内部联接查询集

来自分类Dev

Django ORM:递归多对多字段联接

来自分类Dev

具有内部联接的Django查询

来自分类Dev

使用Django ORM在两个表之间联接记录

来自分类Dev

Django ORM查询以联接表,然后进行分析

来自分类Dev

Django ORM通过GROUP BY和SUM退出联接

来自分类Dev

Django ORM查询以联接表,然后进行分析

来自分类Dev

表之间的内部联接没有相关的Django

来自分类Dev

如何在Django中内部联接4个表?

来自分类Dev

表之间的内部联接没有相关的Django

来自分类Dev

db函数内部的Django ORM过滤返回多个重复行

来自分类Dev

Django ORM查询在两个字段上联接不相关的表

来自分类Dev

如何在Django中通过SQL将联接和分组更改为ORM

来自分类Dev

如何在Django的查询集中执行两个内部联接

来自分类Dev

Django Admin:两个模型之间的交集(自然内部联接)

来自分类Dev

Django左外部联接

来自分类Dev

Django联接表

来自分类Dev

Django ORM跨产品

来自分类Dev

AJAX的Django ORM问题

来自分类Dev

左加入Django ORM

来自分类Dev

Join with subquery in Django ORM

来自分类Dev

简化Django ORM查询

来自分类Dev

Django ORM性能问题

来自分类Dev

Django ORM特定查询

来自分类Dev

左加入Django ORM