declare @a table(id int,name varchar(10)) insert into @a select 1,'aa' insert into @a select 2,'bb' insert into @a select 3,'cc' declare @b table(id int,sex int) insert into @b select 1,20 insert into @b select 2,32 insert into @b select 4,15--左联接: select a.*,sex from @a a left join @b b on a.id=b.id--右联接: select a.*,sex from @a a right join @b b on a.id=b.id--内联接: select a.*,sex from @a a inner join @b b on a.id=b.id查看结果能很清楚地说明三者之间的区别。。
简单地说:INNER JOIN 全匹配LEFT OUTER JOIN 左匹配右,返回左全部数据,右非匹配数据NULL值填充RIGHT OUTER JOIN 反之FULL OUTER JOIN LEFT OUTER JOIN + FULL OUTER JOIN
declare @a table(id int,name varchar(10))
insert into @a select 1,'aa'
insert into @a select 2,'bb'
insert into @a select 3,'cc'
declare @b table(id int,sex int)
insert into @b select 1,20
insert into @b select 2,32
insert into @b select 4,15--左联接:
select a.*,sex from @a a left join @b b on a.id=b.id--右联接:
select a.*,sex from @a a right join @b b on a.id=b.id--内联接:
select a.*,sex from @a a inner join @b b on a.id=b.id查看结果能很清楚地说明三者之间的区别。。
全匹配LEFT OUTER JOIN
左匹配右,返回左全部数据,右非匹配数据NULL值填充RIGHT OUTER JOIN
反之FULL OUTER JOIN
LEFT OUTER JOIN + FULL OUTER JOIN