MSSQL left join、left outer join 、left semi join


三种左连接说明

left join :以左边连接表为主,和右边表进行乘积操作,返回左表所有数据和右边关联的部分数据

left ourt join:功能和left join相同

left semi join:半连接 (MSSQL自动生成的一种连接方式)
返回第一张表记录,在右表中找到几条匹配的记录,但是第一张表只返回第一条记录,右表数据不返回,
半连接通常应用于 in exists查询关键字中


三种左连接举例使用说明

 

create table A(keyId int,info1 varchar(30))
create table B(keyId int,info2 varchar(30))


insert into A values(1,'a'),(2,'B'),(3,'C'),(4,'D')
insert into B  values(10,'a--'),(2,'B----'),(3,'C----'),(40,'D---')



select * from A


select * from B


select * from A left join B on a.keyId = b.keyId 



select * from A where exists (select null from B where b.keyId = a.keyId) truncate table A drop table A truncate table B drop table B