2012-04-26 29 views
2

我在Postgres數據庫中有兩個表,它們的結構完全相同,部分重疊,稱它們爲table1table2。我試圖通過獲取一個表中的所有行而不是另一個表來計算增量。我試圖運行的查詢大致是這樣的:Django:計算表上的Delta值

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

你可以做一個基本表:

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))