该特定字段'stu_id'可以参考SQL语句中FROM子句列表中的多个表?怎么解决
SELECTstu_id,name,depart_name,course_name,scoreFROMDepartment,Student,Course,Course_r...
SELECT stu_id,name,depart_name,course_name,score
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501'; 展开
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501'; 展开
3个回答
展开全部
stu_id在你from表的列表中有多个表包含这个字段,而你查询的字段没有前缀的表名,所以无法判断到底取的哪个表的这个字段。
加上前缀就好了
select student.stu_id, name,depart_name,course_name,score
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501';
加上前缀就好了
select student.stu_id, name,depart_name,course_name,score
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501';
追问
我们课程要求是查询选修了501课程的学生信息,按照你的方法可以了。但是需要输入参数值
Student.stu_id 这是为什么啊?求指教
追答
你看看你的关联语法就知道了,你写一个查询的时候,数据库解析你的语法,一定要知道你SELECT后边每一个字段的出处才能到相关表去获取数据,这个明白么?
他会解析你SELECT后边FROM前边的所有字段,然后根据FROM后边的表解析每个字段出自哪个表。
而你看STU_ID,看WHERE条件Student.stu_id=Course_record.stu_id,从这句话就可以知道你这两个表都有这个字段,你让数据库怎么解析,到底取哪个表的STU_ID字段呢?所以你要指定这个字段的出处,同样,那个STUDENT.STU_ID你也可以改成COURSE.STU_ID,效果一样。而NAME等等其他的字段,这个名字是唯一的,所以你可以不指定。
举个例子,比如一个学校里面好多重名的学生,你用一个名字,怎么能确定是哪个人呢?是不是还要指定人家的班级才行?你就当stu_id时我举例的学生名,而所在的表,就是班级。你想想看。
保持你原有结构,这个语句改成
select student.stu_id as stu_id, name,depart_name,course_name,score
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501';
展开全部
不是很清楚你的意思
是不是
SELECT Student.stu_id,name,depart_name,course_name,score
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501';
是不是
SELECT Student.stu_id,name,depart_name,course_name,score
FROM Department,Student,Course,Course_record
WHERE Department.depart_id=Student.depart_id
AND Student.stu_id=Course_record.stu_id
AND Course_record.Course_id=Course.Course_id
AND Course_id='501';
更多追问追答
追问
为什么还要输入参数值啊?
追答
多个表中有这个stu_id字段啊,所以要说明你需要的是哪个表中的stu_id字段
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询