【问题标题】:How to compare two tables and find the differences如何比较两个表并找出差异
【发布时间】:2019-07-19 11:17:12
【问题描述】:

我有两张如下表。我正在使用 SQL DB。

表1:

Id Name
1  leo
2  lin
3  kim
4  ken
5  jon
6  kelly

表2:

Id Name Date
1  leo  2019-04-11
2  lin  2019-04-17
3  kim  2019-02-15
4  ken  2018-04-11

我正在尝试比较这两个表并找出 table1 中的哪个名称没有日期。

我需要这个输出。

结果:

Id Name
5  jon
6  kelly

谁能帮我解决这个问题。

【问题讨论】:

  • 请阅读How to Ask,点击谷歌搜索'stackexchange homework'和投票箭头鼠标悬停文本。在代码问题中给出minimal reproducible example。显示您可以执行哪些相关查询并解释您被卡住的原因。需求转储不是主题问题。 PS“比较两张表”,“找出差异”和“找出”是如此模糊,以至于它们没有任何意义。如果我们告诉你这样做,你就不会明白我们的意思。使用足够多的单词、句子和对部分示例的引用来清楚完整地表达你的意思。

标签: sql sql-server tsql join compare


【解决方案1】:

使用左连接

SELECT * FROM Table1 
LEFT JOIN Table2
ON Table1.Name = Table2.Name
WHERE Table2.Name is NULL

或者你可以使用WHERE NOT EXISTS

SELECT * From Table1
WHERE NOT EXISTS (SELECT 1 FROM Table2 WHERE Table1.Name = Table2.Name)

或者你可以使用WHERE NOT IN

SELECT * From Table1
WHERE Name NOT IN (SELECT Name FROM Table2)

【讨论】:

    【解决方案2】:

    试试下面这个:

    SELECT Id,Name FROM Table1
    EXCEPT
    SELECT Id,Name FROM Table2
    

    【讨论】:

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