(1) 用连接表的方式查询专业名是’网页设计’学生的学号、姓名(xsqk、kc、xs_kc三张表)
时间: 2024-01-13 20:03:04 浏览: 58
可以使用以下 SQL 语句查询:
```sql
SELECT xs.xh, xs.xm
FROM xsqk AS xsq
JOIN kc ON xsq.kh = kc.kh
JOIN xs_kc AS xskc ON kc.kh = xskc.kh
JOIN xs ON xskc.xh = xs.xh
WHERE kc.zym = '网页设计';
```
这个查询语句中,我们首先通过连接 `xsqk` 和 `kc` 表,然后再通过 `kc` 和 `xs_kc` 表,最后通过 `xs_kc` 和 `xs` 表,将学生表和课程表连接起来。最终的结果仅包含专业名为 '网页设计' 的学生的学号和姓名。
相关问题
用连接表的方式查询专业名是’网页设计’学生的学号、姓名(xsqk、kc、xs_kc三张表)
可以使用以下SQL语句查询:
```
SELECT xs.xh, xs.xm
FROM xsqk xsq
JOIN kc ON xsq.kch = kc.kch
JOIN xs_kc xskc ON kc.kch = xskc.kch
JOIN xs ON xskc.xh = xs.xh
WHERE kc.zym = '网页设计';
```
这个查询使用了四张表:`xsqk`、`kc`、`xs_kc` 和 `xs`。首先,我们通过 `kc.zym = '网页设计'` 过滤出专业名是“网页设计”的课程。然后,我们使用连接表的方式将 `xs` 和 `kc` 表连接起来,以获取学生的学号和课程号。最后,我们再连接 `xsqk` 和 `xs_kc` 表,以获取学生的姓名。
(1) 用连接表的方式查询专业名是’网页设计’学生的学号、姓名(xsqk、kc、xs_kc三张表)不要用JOIN
如果不使用 `JOIN`,可以使用 `WHERE` 子句和子查询来实现:
```sql
SELECT xh, xm
FROM xs
WHERE xh IN (
SELECT xskc.xh
FROM xs_kc AS xskc
JOIN kc ON xskc.kh = kc.kh
WHERE kc.zym = '网页设计'
);
```
这个查询语句中,我们首先在 `xs_kc` 表和 `kc` 表之间使用 `JOIN` 连接,然后使用 `WHERE` 子句过滤出专业名为 '网页设计' 的课程。接着,我们使用子查询来获取这些课程对应的学生学号,最终在 `xs` 表中过滤出这些学生的学号和姓名。虽然这个查询语句不直接使用 `JOIN`,但它实际上仍然使用了连接的概念。
阅读全文