假设我有数据,
declare @TableA table
(
TableAID int,
TableAName varchar(10)
)
declare @TableB table
(
TableBID int,
TableBName varchar(10),
TableAID int
)
insert into @TableA values
(1, 'A 1'),
(2, 'A 2'),
(3, 'A 3')
insert into @TableB values
(1, 'B 1', 1),
(2, 'B 2', 2)
我想写一个连接而不是SQL查询,它返回我的数据,如下所示,
TableAName TableBName
---------- ----------
A 3 N/A
简而言之,通过Inner Joins获得视图的补充!
答案 0 :(得分:0)
这是OUTER JOIN
的经典用法,最常见的是使用LEFT OUTER JOIN
(通常缩写为LEFT JOIN
)
SELECT A.TableAName, B.TableBName
FROM TableA A
LEFT JOIN TableB B on A.TableAID = B.TableAID
WHERE B.TableAID IS NULL
外连接允许不等的记录号,这里TableA有3但TableB有2.当TableB中没有匹配数据时,将存在NULL,因此你可以过滤NULL,如上所示。
请帮自己一个忙,去here for a visual representation of joins &安培;寻找左侧排除JOIN