gpt4 book ai didi

python - 如何在 Django 的查询集中执行两个内部联接

转载 作者:太空狗 更新时间:2023-10-30 01:28:19 26 4
gpt4 key购买 nike

我有三个模型。

class A(models.Model):
status = models.PositiveSmallIntegerField()
status_time = models.DateTimeField(auto_now_add=True)
b = models.ForeignKey(B)
d=models.ForeignKey(D)

class B(models.Model):
***other Fileds*****
c = models.OneToOneField(C)
***other fields***

class C(models.Model):
c_name = models.CharField(max_length=9,unique=True)

我想执行一个可以获取所有 c_name 的查询。

SELECT * FROM A inner join B  on A.b_id=B.id inner join 
C on B.c_id=C.id where A.d_id=1 and A.status=6

谁能帮忙看看怎么办。我在这里发现了一个类似的问题,但对于像我这样的新手来说,理解起来太复杂了。非常感谢您的帮助。

最佳答案

像这样

C.objects.filter(b__a__status=6, b__a__d=1).values_list('c_name', flat=True).distinct()

或者这个

A.objects.filter(status=6, d=1).values_list('b__c__c_name', flat=True).distinct()

关于python - 如何在 Django 的查询集中执行两个内部联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com