查询至少有一门课与学号为" 01 "的同学所学相同的同学的信息
分析: 从sc表查询01同学的所有选课cid--从sc表查询所有同学的sid如果其cid在前面的结果中--从student表查询所有学生信息如果sid在前面的结果中
查询01同学的cid
select sc.cid from sc where sc.sid = '01';
结果:
+------+ | cid | +------+ | 01 | | 02 | | 03 | +------+
从sc表查询所有同学的sid如果其cid在前面的结果中
select sc.sid from sc where sc.cid in( select sc.cid from sc where sc.sid = '01' );
查询结果:
+------+ | sid | +------+ | 01 | | 01 | | 01 | | 02 | | 02 | | 02 | | 03 | | 03 | | 03 | | 04 | | 04 | | 04 | | 05 | | 05 | | 06 | | 06 | | 07 | | 07 | +------+
从student表查询所有学生信息如果sid在前面的结果中
select * from student where student.sid in ( select sc.sid from sc where sc.cid in( select sc.cid from sc where sc.sid = '01' ) );
最终结果:
+------+--------+---------------------+------+ | SId | Sname | Sage | Ssex | +------+--------+---------------------+------+ | 01 | 赵雷 | 1990-01-01 00:00:00 | 男 | | 02 | 钱电 | 1990-12-21 00:00:00 | 男 | | 03 | 孙风 | 1990-12-20 00:00:00 | 男 | | 04 | 李云 | 1990-12-06 00:00:00 | 男 | | 05 | 周梅 | 1991-12-01 00:00:00 | 女 | | 06 | 吴兰 | 1992-01-01 00:00:00 | 女 | | 07 | 郑竹 | 1989-01-01 00:00:00 | 女 | +------+--------+---------------------+------+