就是套娃,把s1和c1用学号连接,然后又用课程号把c1,c2连接,形成的表又和s2连接成最终的一个表,查王秩全部信息。
不知道我这么理解对不对TAT。
如果要找王铁的所有信息,s1限制姓名就OK了。
所以逐条分析,主要是看每一步拿什么关联,取什么。
select s2.* from
(select 学号 from 学生
where 姓名 = '王铁') s1 ---拿王铁的学号
inner join 成绩 c1
on s1.学号 = c1.学号 ----找王铁的课程号
cross join 成绩 c2
on c2.课程号=c1.课程号 -----笛卡尔积,找该课程下的所有学号
inner join 学生 s2
on s2.学号 = c2.学号 ------查找所有王铁所学课程的所有同学(包括王铁)学号关联的学生信息
max_connect_errors=10