你这两个查询查出的都是笛卡尔积、你没发现同一学号和课号的人成绩有多少个、
就好比、你选了1号课90分、你还选了1号课85分、这显然不符合逻辑。
你的两个查询的结果不一样是因为一个笛卡尔积的where条件成立了、而另一个没成立、所以两个一个结果少另一个多,但是查询的结果都是没有意义的数据。
你要查的是所属班级为20050201的所有学生的信息吧:
做连接查询的两个表、字段可以直接用的、不需要再嵌套了
select s.学号,s.姓名,s.性别,g.课程编号,g.分数
from 学生信息 s,成绩信息 g
where g.学生编号=s.学号 and 所属班级= '20050201'
order by g.分数 desc
我觉得因为里面的select出来的结果不一样。第一个where里的select where是 s.学号,而这个s是指的里面的表。而第二个查询中where的s.学号,却是外面的表。
明显 不一样啊!
这么多高手,我倒要看看了