猿问

各位大佬!


题目是用子查询查询成绩不及格的设计MySchool数据库课程的学生学号,姓名

select StudentNo,StudentName,GradeId

from Student

where GradeId=(

select GradeID

from Subject

where SubjectName='设计MySchool数据库' and SubjectID in(

select SubjectID

from Result

where StudentResult<60 

)

)



select StudentNo,StudentName,GradeID

from Student

where StudentNo in(

select StudentNo

from Result

where  StudentResult<60 and SubjectID =(

select SubjectID

from Subject

where SubjectName='设计MySchool数据库'

)

)

为什么条件倒换一下答案就错了,

下面的一段代码是对的


qq_風_21
浏览 1925回答 3
3回答

慕桂英2170621

select StudentNofrom Resultwhere  StudentResult<60 在学生成绩表result里面每个学生的编号肯定是唯一的,这个是OK的而上面那段select SubjectIDfrom Resultwhere StudentResult<60 在学生成绩表里面你能保证学科id是唯一的吗

慕桂英2170621

如果实在搞不清楚,建议GROUP BY看下或者将每个子查询摘出来单独查看下结果就会一目了然

慕桂英2170621

SubjectID in(select SubjectIDfrom Resultwhere StudentResult<60 和StudentNo in(select StudentNofrom Result这两个能一样吗
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答