表1:
cam = models.CharField()
temp = models.Interger()
id cam temp
1 hi 10
2 he 2
表2:
cam = models.CharField()
count = models.Integer()
cam count
hi 5
select t2.count from Table2 t2 inner join Table1 t1 on t1.cam=t2.cam where t1.temp=10
任何人都可以使用django查询帮助编写上述查询。
答案 0 :(得分:0)
根据您的说明,您的模型Table1
和Table2
似乎应该相关,但您的代码中没有任何关系。
因此,完全基于您的问题描述,解决方案应该是:
table1_cam_list = [c.cam for c in Table1.objects.filter(temp=10)]
table2_list = Table2.objects.filter(cam__in=table1_cam_list)
for item in table2_list:
print(item.count)
答案 1 :(得分:0)
您可以使用values_list()从cam
获取Table1
的列表,然后您可以使用该列表从Table2
进行过滤。虽然您应该使用ForeginKey如果要在数据库中使用一对多关系,请填写}字段。
t1_cam_list=Table1.objects.filter(temp=10).values_list('cam', flat=True)
t2_list=Table2.objects.filter(cam__in=t1_cam_list).values_list('count',flat=True)