gpt4 book ai didi

python - Django ORM 内连接

转载 作者:行者123 更新时间:2023-11-30 23:29:01 26 4
gpt4 key购买 nike

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

SELECT     establecimiento.nombre, categoria.titulo
FROM establecimiento INNER JOIN
categoria ON establecimiento.categoria = categoria.id

最佳答案

根据您回复 pdxwebdev 的评论中的信息(您声明了外键字段),这很简单。 Django 自动化了外键关系所需的大部分连接行为。

要精确复制该查询,包括仅从连接中选择两个字段,任何 valuesvalues_listonly 应根据情况执行此操作准确地确定您想要返回的 Python 对象。例如,这是一个使用 values 检索字典的可迭代查询集的查询:

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

values_list 将检索元组而不是字典,并且 only 将检索 Establecimiento 实例,在该实例上,除这两个之外的所有模型字段都被延迟(它们尚未从数据库中检索,但将根据需要进行查找)。

当你使用 __ 来遵循这样的外键关系时,Django 将自动执行内连接。

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

Establecimiento.objects.select_related('categoria')

这应该生成一个 SELECT * from ... 查询,并返回一个已包含 categoria 数据的 Establecimiento 实例的查询集加载到内存中。

关于python - Django ORM 内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com