【问题标题】:Django: Calculating Delta on TablesDjango:计算表的增量
【发布时间】:2012-05-07 11:20:56
【问题描述】:

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

【问题讨论】:

    标签: sql django postgresql 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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      相关资源
      最近更新 更多