构建SQL Join以获得数据补充。需要T-SQL帮助

时间:2014-09-15 13:57:47

标签: mysql sql sql-server

假设我有数据,

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获得视图的补充!

1 个答案:

答案 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