7、 教材中【例3.57】查询与“刘晨”在同一个专业的学生学号,姓名和主修专业;要求结果中出现你自己的学号,姓名,专业;
时间: 2024-10-22 12:09:51 浏览: 28
完全无管达芬奇机器人手术系统在纵隔肿瘤手术中应用.pdf
在教材【例3.57】中,如果假设有一个`students`表,其中包含了`student_id`(学号)、`name`(姓名)、`major`(主修专业)以及`department`(所在专业),可以使用如下SQL查询来找到与"刘晨"同专业的其他同学信息,并包含你自己(假设你的信息在表中也存在):
```sql
SELECT s1.student_id AS 学号, s1.name AS 姓名, s1.major AS 主修专业
FROM students s1
JOIN students s2 ON s1.department = s2.department AND s1.name <> '刘晨'
WHERE s2.name = '刘晨'
UNION ALL
SELECT self.student_id, self.name, self.major
FROM (SELECT * FROM students WHERE name = '你自己的姓名') AS self
```
这里先通过`JOIN`将所有与"刘晨"在同专业的学生`s1`与不是"刘晨"的`s2`连接起来,然后从结果中选择"刘晨"的记录。另外,`UNION ALL`用于合并两个子查询的结果,第一个是查询他人的信息,第二个是直接选取你自己。
阅读全文