如果A表里的成绩是一个学生一条,B表里也是一个学生一条(家庭地址应该不会出现两条),那很简单,C通过学号,关联A,关联B,就结束了 select C.*,A.成绩,B.地址 from C left join A on C.学号=A.学号 left join B on C.学号=B.学号 用 inner join也是可以的吧 如果A里的成绩不是一个学生一条,是一个学生多条,那么要先处理A表,纵横转换,做成一个学生一条,科目是列名,再用上面的方法关联就好了 纵横转换的话,可以考虑用游标,逻辑简单点,做个临时表,或者用PIVOT,用法自己百度吧