今天复习了数据库中的简单SQL语句,聚合函数分组,在“求每个系中年龄最大的学生的信息”,开始想的是子查询,先查出每个系中的最大年龄,再将年龄作为条件查询,开始的思路大体上是没问题的,但存在一个失误,例如中文的最大年龄为22,英文系的最大年龄为23但英文系中存在22岁的学生,这样就会造成查询了英文系两名学生的成绩,原因是条件中用的in定义集合,他只会去匹配年龄而不管他是那个系的,解决这个问题,首先得想办法让系别与年龄对应起来,例如“中文系是22岁”,因此在where处应该是(系别,年龄)=(select 系别,min(出生日期) from 表 group by 系别),这样就将系别与年龄联系起来了。
做完这个题自己也在反思,为什么自己会局限在单一的条件值上,也想不出方法来改变这些固定思维,实在是令自己很恼火,多希望有大神来指导指导我这个小菜鸟啊!!