Django:计算表格上的Delta

时间:2012-04-26 17:19:31

标签: sql django postgresql django-1.4

我在Postgres数据库中有两个表,结构相同且数据部分重叠,称之为table1table2。我试图通过获取一个表中的所有行而不是另一个表中的所有行来计算增量。我正在尝试运行的查询大致如下:

SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2)
SELECT * FROM table2 WHERE id NOT IN (SELECT id FROM table1)

在Django 1.4中构建这个的最佳方法是什么?有什么方法可以为两个表定义一个模型吗?查询此信息的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

你可以制作一个基表:

class Table(models.Model):
   #some fields
   pass

class Table1(Table):
   #some fields specific for table 1
   pass

class Table2(Table):
   #some fields specific for table 2
   pass

要获得表格增量,您可以使用:

Table1.objects.exclude(id__in=Table2.objects.values_list('id', flat=True))