数据举例:
两表人为连接后:
一 、表连接(内) join on输出是黄色部分,两个表的共有部分
SQL语法:
Select From 表1 a join 表2 b on a.关键字段 = b.关键字段(正常情况下关键字段是身份证号)
select from dbo.英语证书表 a join dbo.计算机证书表 b
n a.姓名=b.姓名
二 、表连接( 左 ) left join on输出是见下图
SQL语法:
Select From 表1 a left join 表2 b on a.关键字段 = b.关键字段
select a.姓名,英语证书,计算机证书 from dbo.英语证书表 a left join dbo.计算机证书表 b on a.姓名=b.姓名
三 、表连接(右)
right join on输出是见下图
SQL语法:
Select From 表1 a right join 表2 b on a.关键字段 = b.关键字段
select b.姓名,英语证书,计算机证书 from dbo.英语证书表 a right join dbo.计算机证书表 b
on a.姓名=b.姓名
四 、表连接(全)
full join on输出是见下图
SQL语法:
Select From 表1 a full join 表2 b on a.关键字段 = b.关键字段
select a.姓名,b.姓名,英语证书,计算机证书 from dbo.英语证书表 a full join dbo.计算机证书表 b
on a.姓名=b.姓名
五 、表连接( 全 ) full join on的应用
SQL语法:
Select From 表1 a full join 表2 b on a.关键字段=b.关键字段
(正常情况下关键字段是身份证号,此处为了好理解用的姓名,因为在此表中,姓名也能实现唯一性)
应 用
谁没有过英语四级----where
--第一步使用全连接full join
--第二部加条件where
注意:为了区分两个表的姓名,我们在数据库内进行了修改
修改的方法:直接点选列名,重新命名
select * from dbo.英语证书表 a full join dbo.计算机证书表 b
on a.姓名英语证书表=b.姓名计算机证书
where 英语证书 is null
注意: 连接语句中尽量用正向的条件语句(like is null之类的 ;不用not like 和 is not null语句)
注意: where中需要两个以上条件(用and \or特别要注意逻辑关系)才能执行出来的结果,必须用括号()