4 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
Run Code Online (Sandbox Code Playgroud)
表A是我的源表,B是目标表.现在我需要一个查询来查找表A中的所有不同(附加)行,因此可以使用这些行更新表B. 所以我需要一个查询,它从表A中找到以下行:
Name | Color
----------------------
Donald Duck | green
Goofy | black
Run Code Online (Sandbox Code Playgroud)
这种查询的好方法是什么?它应尽可能高效(避免过多的连接).谢谢你的帮助!
我会使用NOT EXISTS结构.
SELECT Name, Color
FROM TableA
WHERE NOT EXISTS (
SELECT 1 FROM TableB
WHERE TableA.Name = TableB.Name
AND TableA.Color = TableB.Color)
Run Code Online (Sandbox Code Playgroud)
SELECT a.Name, a.Color
FROM a LEFT OUTER JOIN b ON (a.Name = b.Name AND a.Color = b.Color)
WHERE b.Name IS NULL AND b.Color IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7205 次 |
| 最近记录: |