use xsgl
go
select * from student
select * from cause
select * from exam
--联合查询 join on (默认为inner,如果有right or left 那么就指的是外联,outer 可以不写)
/*
1.最长见为内联 table1 inner join table2 on table1.id = table2.id (inner 可以省略)
当且仅当两个表中都有一行符合连接条件时才会显示
2.外联
-- 左外联 table1 left outer join table2 on table1.id = table2.id (outer 可以省略) 查询出table1 表中所有的项,即使table2中与之对应的不存在
-- 右外联 table1 right outer join table2 on table1.id = table2.id (outer 可以省略) 查询出 table2 表中所有的项,即使table2 中与之对应的不存在
-- 全外联 table1 full outer join table2 on table1.id= table2.id (outer 可以省略) 查询两个表中的所有项,含表中与另一个不对应的项
-- 交叉联接 table1 cross join table2 (没有outer 也没有 on,可以用where ) 返回第一个表的每一行与第二表的所有行组成的表
*/
select student.id,student.name,student.class, exam.grade from student inner join exam on student.id = exam.stu_id -- 内联
select student.id,student.name,student.class,exam.grade from student left outer join exam on student.id = exam.stu_id -- 左外联
select student.id,student.name,student.class,exam.grade from student right outer join exam on student.id = exam.stu_id --右外联
select student.id,student.name,student.class,exam.grade from student cross join exam where student.id = exam.stu_id -- 交叉联合