MySQL数据库练习-8

查询至少有一门课与学号为" 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 | 女   |
+------+--------+---------------------+------+

猜你喜欢

转载自www.cnblogs.com/lattesea/p/12168311.html