MySQL 多表联合查询简单实例(mysql两表连查询)
MySQL 多表联合查询简单实例
在实际的数据库应用中,经常需要查询多个表的数据,并将它们联合起来。这时候就需要使用到 MySQL 的多表联合查询。下面就来介绍一下如何使用 MySQL 进行多表联合查询的简单实例。
1. 创建表
首先我们需要创建一些表来作为例子。假设我们有两个表:学生表(students)和课程表(courses)。
学生表的结构如下所示:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
);
课程表的结构如下所示:
CREATE TABLE courses (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
teacher VARCHAR(255) NOT NULL,
student_id INT NOT NULL,
FOREIGN KEY (student_id) REFERENCES students(id)
);
2. 插入数据
接下来,我们需要往这两个表中插入一些测试数据。为了方便起见,我们只插入一些最基本的数据。
插入学生数据:
INSERT INTO students (name, age) VALUES
(‘张三’, 20),
(‘李四’, 21),
(‘王五’, 22);
插入课程数据:
INSERT INTO courses (name, teacher, student_id) VALUES
(‘数学’, ‘高老师’, 1),
(‘英语’, ‘刘老师’, 2),
(‘物理’, ‘张老师’, 3);
3. 多表联合查询
现在我们已经插入了一些测试数据,接下来就可以开始进行多表联合查询了。假设我们需要查询每个学生所选的课程,可以使用下面的 SQL 语句:
SELECT s.name, c.name AS course_name, c.teacher
FROM students s
JOIN courses c ON s.id = c.student_id;
这条 SQL 语句使用了 JOIN 子句将 students 表和 courses 表联合起来。JOIN 子句表示将两个表中的数据按照某个字段进行匹配并合并。在这个例子中,我们将 students 表和 courses 表通过 student_id 字段进行了匹配。
同时,为了更加清晰地呈现每个学生所选的课程,我们使用了 AS 子句给查询出的属性重新命名。这样,查询结果中就会包含每个学生的姓名、所选课程的名称以及教师。
4. 结果分析
执行以上查询语句后,我们可以得到如下的查询结果:
+——-+————-+——–+
| name | course_name | teacher |
+——-+————-+——–+
| 张三 | 数学 | 高老师 |
| 李四 | 英语 | 刘老师 |
| 王五 | 物理 | 张老师 |
+——-+————-+——–+
这个查询结果非常符合我们的预期。我们可以看到,每个学生所选的课程已经按照要求清晰地列出了。这个查询示例也展示了如何在 MySQL 中使用多表联合查询,希望对大家有所帮助。