Skip to main content
 首页 » 编程设计

python之SQLite 到 Django之连接具有相同字段名称的表

2024年10月24日30artech

我正在尝试将这个非常简化的查询传输到 Django 模型:

select B.value from A join B on A.id = B.id where B.param = "foo" group by B.value; 

基本上给我唯一的 B.value 具有共同 id 的行

我在 Django 中的模型是:

#A 
id = CharField() 
... 
 
#B 
id = CharField() 
param = CharField() 
value = CharField() 
... 

据我所知,人们反对在 Django 中加入表。我的查询如何以最简单的形式转换为 Django?

我几乎愿意使用 django.db.connection 执行此查询,但我宁愿不这样做

请您参考如下方法:

看起来您正在尝试检索 B 的所有值,这些值与特定的 param 值匹配并且在 中具有相应的 id >A.. 对吗?

试试这个:

a_ids = A.objects.values_list('id', flat=True) 
b_values = B.objects.filter(param='foo', id__in=a_ids).values_list('value', flat=True).distinct() 

我鼓励您从用例的角度来看待查询,而不是将查询转换为 ORM 等效项。