SELECT studentNo, studentResult FROM result WHEREsubjectNoIN (SELECT subjectNo FROMsubjectWHERE subjectName='数据库结构-1') ORDER BY studentResult DESC;
本题中,虽然有用到两张表subject表和result表,但是查询结果studentNo、studentResult 都只要从result表中获取,所以不用加上subject.subjectNo=result.subjectNo.
SELECT studentNo,studentResult,ClassHour FROM result res ,subjectsub where sub.SubjectNo=res.SubjectNoand sub.subjectNo IN (SELECT subjectNo FROMsubjectWHERE subjectName='数据库结构-1') ORDER BY studentResult DESC;
该题与上题不同的是,除了查询result表中的studentNo、studentResult ,还需要查询subject表中的ClassHour ,这时就必须加上sub.SubjectNo=res.SubjectNo,否则结果就不能一一对应。
由此得出: mySQL中子查询IN语句可以提供查询但不能让两张表互联(即让两张表中值一一对应)。