多表查询中,显示最高分考生的信息SQL怎么写?

问题:
已知有表student,course,grade3个表,要显示考分最高的学生姓名、性别、年龄、课程名和成绩。
SQL这么写对不?为什么显示出来的不是一名同学,而是所有同学,而且成绩都是最高分呢?

SELECT 姓名, 性别, 年龄, 课程名, 成绩
FROM student, course, grade
WHERE 成绩 in(select max(成绩) from grade);
请高人指点。
student(学号,姓名,性别,年龄) 学号为主键
course(课程号,课程名,学时数) 课程号为主键
grade(学号,课程号,成绩) 学号和课程号为主键

自己解决了,3表之间的联系没建立的关系。。。。

第1个回答  2009-10-31
最好把你的各表的表结构列出来,再帮你写一个正确的吧!