gpt4 book ai didi

python - django ORM 中的自定义 SQL : Filtering a list based off another filtered list in one query

转载 作者:行者123 更新时间:2023-11-30 23:40:21 24 4
gpt4 key购买 nike

我想要做的是检索 CarModel 对象的过滤列表,其中 carfield位于另一个模型的字段列表中,例如 GasModel。但 GasModel 集也必须被过滤到一个列表,其中 GasModel 中的一个字段必须等于 CarModel 中的另一个字段(不同的字段)。

所以我几乎想过滤一个列表,以便该列表的字段包含在不同模型的单独字段列表中,并且该列表(第二个模型的)也被过滤(但通过不同的字段第一个(汽车)模型)。我希望这一切都在一次查询集调用中。

这是我到目前为止所拥有的,我相信的错误是

WHERE anothergasfield = another_field_from_car_carmodel

我是否缺少 FROM 关键字或其他内容?如果是这样,它应该去哪里?

CarModel.objects.extra(where = ['carfield IN (SELECT gasfield FROM\
gas_gasmodel WHERE anothergasfield = another_field_from_car_carmodel)'])
.order_by(...)

谢谢

最佳答案

这个怎么样:

CarModel.objects.extra(where = ['carfield IN (SELECT gasfield FROM\
gas_gasmodel WHERE anothergasfield = carmodel.another_field_from_car_carmodel)'])
.order_by(...)

只需将 carmodel 替换为 CarModel 的表名称即可。通常是 {{ app_name }}_{{ model_name }}

您已嵌套 select 语句,其中的字段来自 gas_gasmodel 表,而不是来自 carmodel 表。

关于python - django ORM 中的自定义 SQL : Filtering a list based off another filtered list in one query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700100/

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