用join连接求选修了课程的学生的学号和姓名
时间: 2024-06-16 15:04:22 浏览: 37
使用JOIN连接可以查询选修了课程的学生的学号和姓名。假设我们有两个表,一个是学生表(students),包含学生的学号(student_id)和姓名(name),另一个是选课表(course_selections),包含学生的学号(student_id)和课程编号(course_id)。我们可以使用INNER JOIN将这两个表连接起来,然后筛选出选修了课程的学生的学号和姓名。
SQL查询语句如下:
```
SELECT students.student_id, students.name
FROM students
INNER JOIN course_selections ON students.student_id = course_selections.student_id;
```
这个查询语句会返回选修了课程的学生的学号和姓名。
相关问题
sql语句求选修课程超过2门的学生的学号和姓名
假设有两个表:一个是学生表,包含学生的学号和姓名;另一个是选课表,包含学生的选课信息。
可以使用以下SQL语句查询选修课程超过2门的学生的学号和姓名:
```
SELECT s.学号, s.姓名
FROM 学生表 s
INNER JOIN 选课表 c ON s.学号 = c.学号
GROUP BY s.学号, s.姓名
HAVING COUNT(c.课程号) > 2;
```
其中,`INNER JOIN`用于连接两个表,`GROUP BY`用于将结果按照学生分组,`HAVING`用于筛选选修课程超过2门的学生。
)查询没有选修课程的学生学号,姓名用sql语句
可以使用左连接和 IS NULL 来解决这个问题。以下是一种可能的 SQL 语句:
```
SELECT s.sno, s.sname
FROM student s
LEFT JOIN score sc ON s.sno = sc.sno
WHERE sc.cno IS NULL
```
这个查询语句会从学生表和成绩表中进行左连接,找出没有成绩记录的学生,也就是没有选修过课程的学生。其中,LEFT JOIN 会保留左表(学生表)中所有记录,即使在右表(成绩表)中没有匹配的记录。然后,WHERE 子句过滤出没有成绩记录的学生,即成绩表中的课程号是 NULL 的记录。