需求:查询学生成绩以及学生(显示学生的姓名和成绩)
SELECT english,stuName from result student;
交叉连接查询 不推荐 产生笛卡尔成绩现像 ( 4*4=16)
需求:查询学生以及学生的成绩
多表查询的规则:1确定查询那些表 2 确定哪些字段 3 表与表之间连接的条件(规律:连接条件数量是表数量-1)
2内连接查询:只有满足条件的结果才会显示(使用最频繁)
select stuName ,*
from student,result
where result.stuId=student.id;
内连接的另一种语法
SELECT empName,deptName
FROM employee
INNER JOIN dept
ON employee.deptId=dept.id;
3使用别名
select e.stuName,d.math
from student e inner join result d
on e.id = d.stuid;
需求 查询学生的成绩
预期 结果
张三 80 86
左外连接查询 :使用左边表的数据去匹配右边表的数据,如果符合连接条件则结果显示 ,如果不符合连接条件则显示null
--(注意左外连接查询:左表的数据一定会显示)
select e.stuname , d.math
from student e
left outer join result d
on e.id = d.stuid;
右外连接: 使用右表的数据去匹配左表的数据,如果符合连接条件则显示,如果不符合则显示Null (注意右外连接右表的数据一定会显示)
select e.student,d.math
from result e
right outer join student e
on e.id=d.stuid;
自连接查询
查询 成绩 及其学生 ;
select e.math ,b.math
from result e
lift outer join result b
on e.bossid=b.id; 其中添加了一个字段 bossid