Django 将两个没有外键的表连接到其他表 A类(基本): number=models.IntegerField(默认值=无) ... B类(基本类): head\u number=models.IntegerField(默认值=无) ...

Django 将两个没有外键的表连接到其他表 A类(基本): number=models.IntegerField(默认值=无) ... B类(基本类): head\u number=models.IntegerField(默认值=无) ...,django,django-models,django-orm,Django,Django Models,Django Orm,有两个模型彼此没有关系,如何在django orm中用注释编写下面的查询 Select * from A inner join B on A.number = B.head_number 我试过使用extra(),它可以工作,但我想使用annotate()。 它不能改变任何模式。 有什么办法吗?您可以使用字段查找进行筛选 A.objects.filter(number__in=B.objects.values_list('head_number', flat=True)) 此查询集B.obj

有两个模型彼此没有关系,如何在django orm中用注释编写下面的查询

Select * from A
inner join B on A.number = B.head_number
我试过使用
extra()
,它可以工作,但我想使用
annotate()
。 它不能改变任何模式。 有什么办法吗?

您可以使用字段查找进行筛选

A.objects.filter(number__in=B.objects.values_list('head_number', flat=True))
此查询集
B.objects.values\u list(..)
将作为子选择语句(where子句中的子查询)进行计算