有内联 左联 右联 具体字段需要表名加上字段 也可以把表名as为一个简单的单词
例如表A 有字段:学号 课程 表B有字段:学号 姓名 查询每个学生姓名和对应的课程
内联:select A.课程,B.姓名 from A inner Join B on A.学号=B.学号
左联:select A.课程,B.姓名 from A left Join B on A.学号=B.学号
右联:select A.课程,B.姓名 from A right Join B on A.学号=B.学号
内联是表A 和B 内容都匹配的才显示
左联是匹配左边这张表内容 后面on 和where条件匹配的话显示左边这张表的所有数据
右联和左联一样理解
1.查询全部学生的姓名和所学的课程名称及成绩
2.找出所有学生的平均成绩和所学课程门数
3.找出各课程的平均成绩,按课程号分组,且只选择学生超过3人的课程的成绩
4.找出选修了全部课程的学生的姓名
[img]http://dl.iteye.com/upload/picture/pic/83361/ccc5f81e-9447-31bd-87fa-7e19c4cabf2f.jpg[/img]
--1.查询全部学生的姓名和所学的课程名称及成绩
select s.Sname,o.Cname,c.Grade from Student s,enrolls c,Courses o where s.Sno=c.Sno and c.Cno=o.Cno
--2.找出所有学生的平均成绩和所学课程门数
select Sno,avg(grade) as '平均成绩',count(*) as '所学课程门数' from enrolls group by Sno;
--3.找出各课程的平均成绩,按课程号分组,且只选择学生超过3人的课程的成绩
select enrolls.Cno,cname,avg(grade) as '平均成绩' from enrolls,Courses where enrolls.cno=Courses.cno group by enrolls.Cno,cname having count(*)>=3;
--4.找出选修了全部课程的学生的姓名
select Sname from student where sno in(select sno from enrolls group by Sno having count(sno)=(select count(cno) from Courses))
http://zhidao.baidu.com/question/109327358.html?an=0&si=10
例如表A 有字段:学号 课程 表B有字段:学号 姓名 查询每个学生姓名和对应的课程
内联:select A.课程,B.姓名 from A inner Join B on A.学号=B.学号
左联:select A.课程,B.姓名 from A left Join B on A.学号=B.学号
右联:select A.课程,B.姓名 from A right Join B on A.学号=B.学号
内联是表A 和B 内容都匹配的才显示
左联是匹配左边这张表内容 后面on 和where条件匹配的话显示左边这张表的所有数据
右联和左联一样理解
1.查询全部学生的姓名和所学的课程名称及成绩
2.找出所有学生的平均成绩和所学课程门数
3.找出各课程的平均成绩,按课程号分组,且只选择学生超过3人的课程的成绩
4.找出选修了全部课程的学生的姓名
[img]http://dl.iteye.com/upload/picture/pic/83361/ccc5f81e-9447-31bd-87fa-7e19c4cabf2f.jpg[/img]
--1.查询全部学生的姓名和所学的课程名称及成绩
select s.Sname,o.Cname,c.Grade from Student s,enrolls c,Courses o where s.Sno=c.Sno and c.Cno=o.Cno
--2.找出所有学生的平均成绩和所学课程门数
select Sno,avg(grade) as '平均成绩',count(*) as '所学课程门数' from enrolls group by Sno;
--3.找出各课程的平均成绩,按课程号分组,且只选择学生超过3人的课程的成绩
select enrolls.Cno,cname,avg(grade) as '平均成绩' from enrolls,Courses where enrolls.cno=Courses.cno group by enrolls.Cno,cname having count(*)>=3;
--4.找出选修了全部课程的学生的姓名
select Sname from student where sno in(select sno from enrolls group by Sno having count(sno)=(select count(cno) from Courses))
http://zhidao.baidu.com/question/109327358.html?an=0&si=10