oracle 中inner内连接、 left左连接、right 右连接用法

概述:
内连接:把两个表中数据对应的数据查出来
外连接:以某个表为基础把对应数据查出来(全连接是以多个表为基础)
(分为左外连接,右外连接)
oracle中+号放在=右边相当于左连接,而+号放在=左边相当于右连接

student表
no name
1 a
2 b
3 c
4 d

grade表
no grade
1 90
2 98
3 95

①内连接 inner join(查找条件中对应的数据,no4没有数据不列出来)
语法:select * from student inner join grade on student.no = grade.no
结果
student.no name grade.no grade
1 a 1 90
2 b 2 98
3 c 3 95
select A.*, B.* from A,B where A.id = B.id
select A.*, B.* from A inner join B on A.id = B.id
以上两句是完全等价的

②左连接(左表中所有数据,右表中对应数据)
语法:select * from student left join grade on student.no = grade.no
结果:
student.no name grade.no grade
1 a 1 90
2 b 2 98
3 c 3 95
4 d

③右连接(右表中所有数据,左表中对应数据)
语法:select * from student right join grade on student.no = grade.no
结果:
student.no name grade.no grade
1 a 1 90
2 b 2 98
3 c 3 95

④全连接
语法:select * from student full join grade on student.no = grade.no
结果:
no name grade
1 a 90
2 b 98
3 c 95
4 d
1 a 90
2 b 98
3 c 95

注:access 中不能直接使用full join ,需要使用union all 将左连接和右连接合并后才可以

你可能感兴趣的:(内连接,左连接,右连接)