我正在尝试将这个非常简化的查询传输到 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 等效项。
