sql三表连接学生成绩
1. SQL三表关联查询
select a.*,c.f from (select * from a inner join b on a.a = b.a) as a inner join c on a.d = c.d
select a.*,c.f from a inner join b on a.a = b.a inner join b.d = b.d
两个都可以,第一个更容易理解,括号里的部分是查询出查询表A的数据和当表的a=表B的a的数据,把这个结果集,再inner join c on a.d = c.d
查询出表B的d=表C的d 所对应的f的值。
(1)sql三表连接学生成绩扩展阅读:
三个表左连接的sql语句
select
intro_web_page.id,
web_id,
web_name,
template_id ,
template_name,
template_param,
intro_web_page.sort_order
from intro_web_page left join intro_web on (web_id=intro_web.id)
left join intro_template on (intro_web_page.template_id=intro_template.id)
注:这里主要是看,当两个表和某一个表都有联系的时候,左连接left join on要怎么写。
更新语句
UPDATE issue INNER JOIN user ON `issue`.insert_uid and `user`.id INNER JOIN
(SELECT issue.id as id,issue.insert_uid as uid,`user`.school_id as school_id,school.area as area1 from issue,user,school
where issue.insert_uid=`user`.id and `user`.school_id=school.id) AS T1
ON issue.insert_uid=T1.uid
SET issue.area=T1.area1
2. sql 三表连接查询
select student.stuno(学号),stuname(姓名),book.bookno(书号专),count(amount),sum(price)as 应付
FROM student,book,bookorder
where student.stuno=bookorder.stuno,book.bookno=bookorder.bookno
group by stuno(学号属)
go
3. SQL 三表 左连接 急 +++++++++++++++++高分
用临时表处理起来容易一点,如果一定要用一句SQL来检索的话只能几个用子内查询
select StudentName,C.Grade_float,M.Grade_float,..... from T_Students S
left outer join (select Grade_float,StudentID from T_Grade left outer join T_Course on T_Grade.CourseID = T_Course.CourseID where T_Course.CourseName='语文')C on C.StudentID = S.StudentID
left outer join (select Grade_float,StudentID from T_Grade left outer join T_Course on T_Grade.CourseID = T_Course.CourseID where T_Course.CourseName='数学')M on M.StudentID = S.StudentID
.........
抛砖引玉容,希望有更好的方法
4. 求三表联合查询的SQL查询语句
车讯语句:select username,psw from (a1 left join a2 on a1.a1_id=a2.a1_id) left join a3 on a1.a1_id=a3.a1_id
这样写:
SELECT
S.SName AS 姓名, CS.CourseName AS 课程, C.Score AS 成绩
FROM Students AS S
INNER JOIN Score AS C ON (S.SCode = C.StudentID)
INNER JOIN Course AS CS ON (CS.CourseID = C.CourseID
(4)sql三表连接学生成绩扩展阅读:
SQL联合查询的分类
一、内连接查询:只查询左边表有且右边表也有的数据,本质上是依据外键关系,在笛卡尔积查询的基础上过滤出正确的数据。
语句有2种形式:
Select * from dept ,emp where dept.id=emp.dept_id
Select * from dept inner join emp on dept.id =emp.dept_id
二、外连接查询:外连接是用于查询俩边一边有一边没有的数据。
三、左外连接查询:在内连接的基础上增加上左边表有而右边表没有的数据
语句:Select * from dept join emp on dept.id=emp.dept_id
四、右外连接:在内连接的基础上增加上右边表没有的记录
语句:Select * from dept right join emp on dept.id =emp.dept_id
5. sql 三表联合查询
select 学号,姓名,班级,课程,成绩
from 学生表
left join 班级表 on 班级表.学号=学生表.学号
left join 成绩表回 on 成绩表.学号=学生表.学号
只要答一条的话再加个条件啊
像你的补充就是科目都是语文,那么where 课程='语文'就好了
要查郑三的话,把where 课程='语文'去掉,这样
select 学号,姓名,班级,课程,成绩
from 学生表
left join 班级表 on 班级表.学号=学生表.学号
left join 成绩表 on 成绩表.学号=学生表.学号 and 成绩表.课程='语文'
6. SQL三表连接查询
select a.*,c.f from (select * from a inner join b on a.a = b.a) as a inner join c on a.d = c.d
select a.*,c.f from a inner join b on a.a = b.a inner join b.d = b.d
两个都可以,第一个更容易理解,括号里的部分是查询出查询表A的数据和当表A的a=表B的a的数据,把这个结果集,再inner join c on a.d = c.d
查询出表B的d=表C的d 所对应的f的值。
(6)sql三表连接学生成绩扩展阅读:
三个表左连接的sql语句
select
intro_web_page.id,
web_id,
web_name,
template_id ,
template_name,
template_param,
intro_web_page.sort_order
from intro_web_page left join intro_web on (web_id=intro_web.id)
left join intro_template on (intro_web_page.template_id=intro_template.id)
注:这里主要是看,当两个表和某一个表都有联系的时候,左连接left join on要怎么写。
更新语句
UPDATE issue INNER JOIN user ON `issue`.insert_uid and `user`.id INNER JOIN
(SELECT issue.id as id,issue.insert_uid as uid,`user`.school_id as school_id,school.area as area1 from issue,user,school
where issue.insert_uid=`user`.id and `user`.school_id=school.id) AS T1
ON issue.insert_uid=T1.uid
SET issue.area=T1.area1
7. 三表联查的SQL语句
很容易的, 这个题目网上到处都是,你搜索一下就知道了, 太晚了,想睡觉了, 如果明天还没有答案的话我来帮你吧。
8. 数据库三表连接
--5)查出所有女学生的各科回成绩答
select r_fenshu from dbo.results where r_stid in (select st_id from dbo.students where sex='女')
9. SQL server 三表连查 求高手指教
SELECT c.stuName,b.className,b.proName,b.maxscore
FROM marks a
INNER JOIN (
select c.className,b.proId,b.proName,max(a.score) as maxscore
from marks a
inner join project b on a.proId=b.proId
inner join student c on a.stuId=c.stuId
group by c.className,b.proId,b.proName
) b on a.proId=b.proId and b.maxscore=a.score
inner join student c on a.stuid=c.stuid and b.className=c.className
复制直接运行就可以了 挂号里面表示某一科目的某一班的最高分
下面是我用临时表模拟的例子:
declare @student table(stuId int ,stuName Nvarchar(20),className Nvarchar(50))
declare @project table(proId int ,proName Nvarchar(20))
declare @marks table(id int identity(1,1),stuId int ,proId int,score money)
INSERT INTO @student VALUES(1,N'张三',N'高一(1)班')
INSERT INTO @student VALUES(2,N'李四',N'高一(1)班')
INSERT INTO @student VALUES(3,N'王五',N'高一(2)班')
INSERT INTO @student VALUES(4,N'赵六',N'高一(2)班')
INSERT INTO @project VALUES(1,N'语文')
INSERT INTO @project VALUES(2,N'数学')
INSERT @marks(stuId,proId,score) VALUES(1,1,89)
INSERT @marks(stuId,proId,score) VALUES(1,2,96)
INSERT @marks(stuId,proId,score) VALUES(2,1,79)
INSERT @marks(stuId,proId,score) VALUES(2,2,97)
INSERT @marks(stuId,proId,score) VALUES(3,1,91)
INSERT @marks(stuId,proId,score) VALUES(3,2,94)
INSERT @marks(stuId,proId,score) VALUES(4,1,88)
INSERT @marks(stuId,proId,score) VALUES(4,2,95)
SELECT c.stuName,b.className,b.proName,b.maxscore--,a.stuid
FROM @marks a
INNER JOIN (
select c.className,b.proId,b.proName,max(a.score) as maxscore
from @marks a
inner join @project b on a.proId=b.proId
inner join @student c on a.stuId=c.stuId
group by c.className,b.proId,b.proName
) b on a.proId=b.proId and b.maxscore=a.score
inner join @student c on a.stuid=c.stuid and b.className=c.className
10. 哪位大虾有经典的sql三表联查的习题呢,我面试需要,急需冲冲电啊,比如 像学生,课程,分数,这种三表之
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
要求实现如下5个处理:
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
5. 查询选修了课程的学员人数
6. 查询选修课程超过5门的学员学号和所属单位
**************问题描述************:
已知关系模式:
S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩
要求实现如下5个处理:
1. 找出没有选修过“李明”老师讲授课程的所有学生姓名
2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩