首页 > 代码库 > 数据库表连接(内连接,外连接【左连接、右连接、全连接】交叉连接)

数据库表连接(内连接,外连接【左连接、右连接、全连接】交叉连接)

左连接和右连接:

左连接:以左表为基准进行查询,左表数据全部进行显示,右表中显示与左表匹配的全部数据,不匹配的则显示为null

右连接(与左连接完全相反):以右表为基准进行查询,右表数据全部显示出来,左表中与右表匹配的数据全部显示出来,不匹配的则显示为null

全连接(左连接与右连接的结合体):先以左表为基准进行查询显示,再以右表为基准进行查询显示

基准:以某张表的限制条件查询为准!

book表

bookID bookName studentID
1 《红楼梦》 0003
2 《水浒传》 0005
3 《三国演义》 0003
4 《西游记》 0002
5 《朝花夕拾》 0006
6 《西厢记》 0010

student表

studentID     studentName
0001 张飞
0002 关羽
0003 王五
0004 李四
0005 赵敏
0006 黄聪
null null

1.内连接:

select * from [book] as b,[student] as where b.studentID=s.studentID

等价于

select * from [book] as b inner join [student] as s on b.studentID=s.studentID

结果为:

bookID bookname studentID studentID studentname
1 《红楼梦》 0001 0001 张飞
2 《水浒传》 0002 0002 关羽
3 《三国演义》 0003 0003 李四
4 《西游记》 0004 0004 赵敏
5 《朝花夕拾》 0005 0005 黄聪

2.左连接

select * from [book] as b left join [student] as s on b.studentID =s.studentID

结果

bookID bookname studentID studentID studentname
1 《红楼梦》 0003 0003 李四
2 《水浒传》 0005 0005 赵敏
3 《三国演义》 0003 0003 李四
4 《西游记》 0002 0002 关羽
5 《朝花夕拾》 0006 0006 黄聪
6 《西厢记》 0010 null null

3.右连接

select * from [book] as b right join [student] as s on b.studentID = s.studentID

bookID bookname studentDI studentID studentname
 null  null  null 0001 张飞
 4   《西游记》  002 0002 关羽
 3  《三国演义》  003 0003 王五
 null  null  null 0004 李四
 2  《水浒传》  005 0005 赵敏
 5  《朝花夕拾》  006 0006 黄聪

4.全连接

select * from [book] as b full out join  [student] as s on b.studentID = s.studentID

bookID bookname studentID studentID studentname
         
         
         
         
         
         

数据库表连接(内连接,外连接【左连接、右连接、全连接】交叉连接)