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