我正在尝试将这个非常简化的查询转移到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
执行此查询,但我不想
答案 0 :(得分:2)
您似乎正在尝试检索与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等效项。