Sql 4表多表查询例子
时间: 2023-06-13 13:07:25 浏览: 40
假设我们有以下四个表:
- Students: 学生信息表,包括学生的ID、姓名、年龄、性别等;
- Courses: 课程信息表,包括课程的ID、名称、学分、教师等;
- Scores: 成绩信息表,包括学生ID、课程ID、成绩等;
- Teachers: 教师信息表,包括教师ID、姓名、性别、所属学院等。
我们要查询每个学生的姓名、年龄、所选课程及成绩、授课教师的姓名和学院,可以使用以下SQL语句:
```
SELECT Students.name, Students.age, Courses.name, Scores.score, Teachers.name, Teachers.college
FROM Students
INNER JOIN Scores ON Students.id = Scores.student_id
INNER JOIN Courses ON Scores.course_id = Courses.id
INNER JOIN Teachers ON Courses.teacher_id = Teachers.id;
```
该语句中,我们使用了INNER JOIN进行多表连接,将四个表连接起来,并使用SELECT语句选取我们需要的列。通过使用ON关键字,我们指定了连接条件。其中,Students.id = Scores.student_id表示连接Students表和Scores表时,以学生ID作为连接条件;Scores.course_id = Courses.id表示连接Scores表和Courses表时,以课程ID作为连接条件;Courses.teacher_id = Teachers.id表示连接Courses表和Teachers表时,以教师ID作为连接条件。
这样,我们就可以得到每个学生的姓名、年龄、所选课程及成绩、授课教师的姓名和学院。