怎样进行多表查询,用什么SQL语句

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:56:45
例:有三个表
学生表StuInfo 表项有StuID,StuName等
课程表ClassInfo 表项有ClassID,ClassName等
选课表StuClass 表项有StuID,ClassID
请问如何通过某学生学号查看其所选课程的课程信息,即课程表里对应课程的全部信息(课程代码,课程名称等),该用什么样的SQL语句,数据库是ACCESS建的。
有劳大家了。。。

我看到语句嵌套就不舒服,所以我常常喜欢把复杂的东西写的简洁

假定张三的学号是1,下面语句就是查询张三所选课程信息

select a.* from ClassInfo a,StuClass b where a.ClassID=b.ClassID and b.stuid='1'

select a.*,b.*,c.* from StuInfo a left jion ClassInfo b on a.?=b.? left jion StuClass c on a.StuID = c.StuID

SELECT ci.*
FROM StuInfo si INNER JOIN (StuClass sc INNER JOIN ClassInfo ci ON sc.ClassID = ci.ClassID) ON si.StuID = sc.StuID
WHERE sc.StuID = "1000"

把1000改成你需要的学号就可以.
我已在access上测试通过.

子查询
select * from classinfo where classid = (select ClassId from stuclass where stuId =学生号)
内联查询
select * from classinfo ci join stuclass sc on ci.classid = sc.classid