Django加入2个表,有2个连接条件

时间:2012-10-18 10:08:30

标签: django django-models

我有两张表A和B

class A(models.Model):
  A_val= models.DecimalField(max_digits=4, decimal_places=0)
  A_name= models.CharField(max_length=32, blank=True)
  A_type= models.CharField(max_length=32, blank=True)
  unique_together(A_val,A_name)

 class B(models.Model):
    A_val=models.ForeignKey(A)
    A_name=models.ForeignKey(A)

现在我想要

select * from B,A where A.A_val=B.A_val and A.A_name=B.B_name and A_type="typename"

我按照miki725的说法做了以下事情来实现这个目标

B.objects.filter(A_name__A_type='type_name').select_related('A_name', 'A_val')

但这相当于

select * from B,A where A.A_name=B.B_name and A_type="typename"

忽略 A.A_val = B.A_val 。我希望联接基于所有3个条件。我该怎么做

0 个答案:

没有答案