SQL Server - 需要加入但不等于

Nat*_*Pet 12 t-sql sql-server

我正在使用SQL Server 2012.

我知道如何做一个内连接,给出一个匹配的地方.我还需要获取不匹配的记录.

什么是最好的方法.我想我可以做左连接和内连接,然后得到留下的连接.想知道什么是最好和最干净的方法.

如上所述,我已经在进行内连接,但也需要显示没有匹配的记录.

Ste*_*ler 66

您可能正在寻找外部联接或外部排除联接.

外联

在此输入图像描述

SELECT *
FROM tableA a
FULL OUTER JOIN tableB b
    ON a.column = b.column
Run Code Online (Sandbox Code Playgroud)

外部排除加入

在此输入图像描述

SELECT *
FROM tableA a
FULL OUTER JOIN tableB b
    ON a.column = a.column
WHERE a.column IS NULL OR b.column IS NULL
Run Code Online (Sandbox Code Playgroud)

sql加入

本答案中的图表取自这篇非常有用的文章.