3

Postgresデータベースに同じ構造でデータが部分的に重複している2つのテーブルがあり、それらtable1をとと呼びますtable2。1つのテーブルにあるが、他のテーブルにはないすべての行を取得して、デルタを計算しようとしています。私が実行しようとしているクエリは、おおよそ次のとおりです。

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つのモデルを定義する方法はありますか?この情報を照会するための最良の方法は何ですか?

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 に答える