日期:2014-05-17  浏览次数:20657 次

来求助这里的大哥SQL语句查询了
由于这里人气比较旺盛冒昧来请教各位了
我想要实现的是通过输入“学号”就能能把这个学生的“所有课程名”都查找出来 但是我遇到难题了
select CourseName from NSI_Course_t where CourseID=(select CourseID from NSI_TeacherCourse_T where TeacherCourseID=(select TeacherCourseID from NSI_StudentGrade_T where StudentID=(select StudentID from NSI_Student_T where StudentNO='2006010204')));

从最后开始一个StudentNO='2006010204'对应一个StudentID是没问题 但是从倒数第二句开始 我一个StudentID对应着不止一个TeacherCourseID(因为一个学生不止被一个老师教),但是这种sql语句查询结果只能是单一的 所以从这句开始我的查询就进行不下去了 求解 如何进行这种查询呢 小弟赶紧不仅

------解决方案--------------------
把表贴出来嘛,至少每个表的关系要贴出来嘛。。。要不咋个知道关系
------解决方案--------------------
如2楼所说,楼主应该把大致有几张表,以及表之间的关联关系说明下。

话说楼主会用多表连接语句么?对于常规的结构一般是:

Select 课程表.课程名
From 学生表, 学生选课表, 课程表
Where 学生表.学号 = 学生选课表.学号 And
学生选课表.课程编号 = 课程表.课程编号 And
学生表.姓名 = "张三"

当然这个例子未必好,因为姓名容易发生重复。


------解决方案--------------------
将对应多个的“=” 用 “in” 再 看看
------解决方案--------------------
用表连接吧。。
ps:发到数据库板块会有更大收获