查询所有修过java这门课_查询选修了“JAVA”课程的学生姓名和所在的系
时间: 2023-11-24 07:25:26 浏览: 47
好的,针对您的问题,可以使用以下 SQL 语句来查询选修了“JAVA”课程的学生姓名和所在的系:
```sql
SELECT s.name, d.department_name
FROM student s
INNER JOIN department d ON s.department_id = d.department_id
INNER JOIN student_course sc ON s.student_id = sc.student_id
INNER JOIN course c ON sc.course_id = c.course_id
WHERE c.course_name = 'JAVA';
```
其中,需要根据您的数据表结构进行相应的调整。这条 SQL 语句的大致思路是:通过多表连接,筛选出选修了“JAVA”课程的学生,并将学生姓名和所在系名查询出来。
相关问题
查询所有选修了“java技术开发”课程的学生和姓名
可以使用如下 SQL 语句查询所有选修了“java技术开发”课程的学生和姓名:
```sql
SELECT s.student_name
FROM student s
INNER JOIN score sc ON s.student_id = sc.student_id
INNER JOIN course c ON sc.course_id = c.course_id
WHERE c.course_name = 'java技术开发';
```
其中,`student`、`score`、`course` 分别为学生、成绩和课程的表名,`student_name` 为学生表中对应的列名,`course_name` 为课程表中对应的列名。这里同样使用了 `INNER JOIN` 进行表的连接,连接条件分别为学生表中的学生 ID 与成绩表中的学生 ID 相等,课程表中的课程 ID 与成绩表中的课程 ID 相等。最后通过 `WHERE` 子句指定选修课程为“java技术开发”。
mysql查询学生所选修的全部课程_查询选修了全部课程的学生姓名
查询学生所选修的全部课程:
```mysql
SELECT s.name, c.course_name
FROM student s
JOIN student_course sc ON s.id = sc.student_id
JOIN course c ON sc.course_id = c.id
WHERE s.id = [学生ID];
```
查询选修了全部课程的学生姓名:
```mysql
SELECT s.name
FROM student s
JOIN student_course sc ON s.id = sc.student_id
JOIN course c ON sc.course_id = c.id
GROUP BY s.id
HAVING COUNT(DISTINCT c.id) = (SELECT COUNT(*) FROM course);
```
这里使用了子查询来获取全部课程的数量,再通过 GROUP BY 和 HAVING 子句来筛选选修了全部课程的学生。