Django ORM使用来自不同子查询的列进行算术运算

时间:2017-03-17 10:30:28

标签: python sql django django-orm

我有一张桌子:

test_id   url      value
1        'url1'      3
1        'url2'      3
1        'url3'      7
2        'url1'      5
2        'url2'      4
2        'url3'      2

在django中,我有一个带有2个传入变量的函数,用于不同的test_id`s:

def tests_compare_aggregate(request, test_id_1, test_id_2):

我需要执行SQL查询,它将显示这两个test_id的url值之间的差异,如:

SELECT t1.url, t1.value - t2.value FROM 
(SELECT url, value FROM table WHERE test_id = test_id_1) t1,
(SELECT url, value FROM table WHERE test_id = test_id_2) t2 WHERE
t1.url = t2.url

所以我有两个QuerySet:

t1 = Table.objects.filter(test_id=test_id_1).values('test_id,'url','value')
t2 = Table.objects.filter(test_id=test_id_2).values('test_id,'url','value')

接下来怎么处理它们还是有其他方法吗?我尝试了很多东西,但没有任何效果。

0 个答案:

没有答案