3

我在 Postgres 数据库中有两个表,它们具有相同的结构和部分重叠的数据,将它们table1称为table2. 我试图通过获取一个表中的所有行而不是另一个表来计算增量。我试图运行的查询大致是这样的:

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 中构建它的最佳方法是什么?有什么方法可以只为两个表定义一个模型吗?查询此信息的最佳方法是什么?

4

1 回答 1

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))
于 2012-04-26T17:42:42.190 回答