【问题标题】:related tables, how to find records if there are missing rows相关表,如果缺少行如何查找记录
【发布时间】:2016-06-27 16:43:47
【问题描述】:

如果两张表被releted,一张表可能有缺失的行,如何找到这些记录?

例如我有两个表:table1(主键为“id”,table2(外键为“id”) 我想要实现的是获取所有记录,其中 table1 记录在 table2 中没有对应项(缺少行)。

【问题讨论】:

  • 进行左连接并检查table2的对应部分是否为空

标签: sql


【解决方案1】:

您可以为此使用NOT EXISTS:

SELECT *
FROM table1 AS t1
WHERE NOT EXISTS (SELECT 1
                  FROM table2 AS t2
                  WHERE t2.id = t1.id)

【讨论】:

    【解决方案2】:

    EXCEPT/EXCEPT ALL可以用:

    select id from table1
    except all
    select id from table2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多