use*_*412 2 sql sql-server join sql-server-2008
我有2张这样的桌子
+------+-------+------+------+---------+
| NAME |SURNAME|DEPART| POST |EMPLOYEE#|
+------+-------+------+------+---------+
| JACK | LONDON| 111 |WRITER| 12345678|
|......|.......|......|......|.........|
+------+-------+------+------+---------+
Run Code Online (Sandbox Code Playgroud)
和
+------+-------+------+------+---------+
| NAME |SURNAME|DEPART| POST | LOGIN |
+------+-------+------+------+---------+
| MARK | TWAIN | 222 |WRITER| MTWAIN |
|......|.......|......|......|.........|
+------+-------+------+------+---------+
Run Code Online (Sandbox Code Playgroud)
我需要在表1中找到表2中不存在的记录,并返回此类记录的所有字段.
我使用这样的代码......
SELECT name,depart FROM tb1 EXCEPT SELECT name,depart FROM table2
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,结果只有2个字段NAME,DEPART.
基本上,你可以使用LEFT JOIN
这个.当记录打开时Table1
未找到任何匹配项时Table2
,列on值的结果Table2
将为NULL,因此要过滤掉非匹配值,请添加检查table2上的NULL值的条件.
SELECT a.*
FROM Table1 a
LEFT JOIN Table2 b
ON a.name = b.name AND
a.depart = b.depart
WHERE b.Name IS NULL
Run Code Online (Sandbox Code Playgroud)
要进一步了解联接,请访问以下链接:
归档时间: |
|
查看次数: |
9281 次 |
最近记录: |