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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库表连接(内连接,外连接左连接右连接全连接交叉连接)相关的知识,希望对你有一定的参考价值。

左连接和右连接:

左连接:以左表为基准进行查询,左表数据全部进行显示,右表中显示与左表匹配的全部数据,不匹配的则显示为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
         
         
         
         
         
         

以上是关于数据库表连接(内连接,外连接左连接右连接全连接交叉连接)的主要内容,如果未能解决你的问题,请参考以下文章

SQL:内连接左外连接右外连接全连接交叉连接区别

内连接,外链接(左连接右连接全连接),交叉连接大总结+附SQL JOINS图解[转]

解析:内联,左外联,右外联,全连接,交叉连接的区别

图解MySQL 内连接外连接左连接右连接全连接

图解数据库左连接右连接内连接外连接全连接的区别

图解数据库左连接右连接内连接外连接全连接的区别