小编典典

SQL-检查表中是否有新行?

sql

我有两个表,例如:

Table A                                  Table B
=======                                  =======

Name         | Color                     Name         | Color
----------------------                   ----------------------
Mickey Mouse | red                       Mickey Mouse | red
Donald Duck  | green                     Donald Duck  | blue
Donald Duck  | blue                      Minnie       | red
Goofy        | black
Minnie       | red

表A是我的源表,表B是目标表。现在,我需要一个查询,该查询可以在表A中找到所有不同的(附加)行,因此可以使用这些行来更新表B。因此,我需要一个查询,该查询从表A中找到以下行:

Name         | Color  
----------------------
Donald Duck  | green  
Goofy        | black

这样的查询有什么好的方法?它应该尽可能高效(避免过多的联接)。谢谢你的帮助!


阅读 136

收藏
2021-04-17

共1个答案

小编典典

我将使用NOT EXISTS结构。

SELECT Name, Color
FROM TableA
WHERE NOT EXISTS (
SELECT 1 FROM TableB
WHERE TableA.Name = TableB.Name 
AND TableA.Color = TableB.Color)
2021-04-17