Oracle多表连接查询
连接:将一张表中的行按照某种条件和另一张表中的行连接起来形成一个新行的的过程。
根据连接查询返回的结果,分为3类:
内连接(inner join)
外连接(outer join)
交叉连接(cross join)
其中外连接有分为两种:左外连接和右外连接
下面演示一下三张表的连接过程:
先查询一下,每张表的数据
1 select c_id 班级id,c_name 班级名称,teacher_id 班主任id from CLASS 2 select t_id 班主任id, t_name 班主任姓名 from teacher 3 select s_id 学生id, s_name 学生姓名, class_id 班级id from student
班级表数据如下:
班主任表数据如下:
学生表数据如下:
三张表交叉连接的sql语句如下:
select s_id 学生id, s_name 学生姓名, class_id 班级id, t_id 班主任id, t_name 班主任姓名, c_id 班级id,c_name 班级名称,teacher_id 班主任id from student s join class c on s.class_id=c.c_id join teacher t on c.teacher_id=t.t_id
结果如下:
带条件查询:
例如查询s.class_id=2的数据
select s_id 学生id, s_name 学生姓名, class_id 班级id, t_id 班主任id, t_name 班主任姓名, c_id 班级id,c_name 班级名称,teacher_id 班主任id from student s join class c on s.class_id=c.c_id join teacher t on c.teacher_id=t.t_id and s.class_id=2
带条件查询结果为:
多表查询今天先写到这里吧!改天继续写!
版权声明:本文为wxsj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。