MYSQL左右连接

41 阅读3分钟

MySql左右连接

MySQL是一款开源的关系型数据库管理系统,作为数据处理领域中的关键工具之一,MySQL提供了丰富的特性和功能。其中,对于左连接和右连接是开发者在数据查询中经常使用的一种 SQL JOIN 操作,在学习 MySQL 的过程中,掌握左连接和右连接的基础知识是非常重要的。

一、左连接和右连接简介

在进行 MySQL 数据库查询时,连接查询(JOIN)是一种非常方便的方式,连接查询允许开发者将多个表中的数据连接在一起,从而获得需要的数据。其中,连接查询可以分为三种:内连接、左连接和右连接。

左连接(LEFT JOIN)和右连接(RIGHT JOIN)都是以左表或右表中所有记录的视角来查询数据, 返回左表(左连接)或右表(右连接)中的所有记录,以及两个表中符合条件的行。在左连接中,所有左侧表格的数据都会显示出来,而在右连接中,所有右侧表格的数据会全部显示出来。

二、学习左连接

左连接(LEFT JOIN)是指从左表中获取所有的记录,而右表中进行匹配,如果没有匹配到结果,则结果为 NULL。在左连接中,语法的基本形式为 SELECT * FROM 左表名 LEFT JOIN 右表名 ON 连接条件;

例如,有以下两个表:

学生表:

idname
1张三
2李四
3王五
4钱六

成绩表:

idscorestudent_id
1801
2902
3601

则可以通过以下 SQL 语句返回学生表的全部数据,以及成绩表与学生表中 ID 相同的成绩数据:

SELECT *
FROM 学生表
LEFT JOIN 成绩表
ON 学生表.id = 成绩表.student_id;

Copy

此时返回的结果中,左表学生表中所有的数据都会显示出来,而右表中如果没有匹配到结果,则返回 NULL,例如成绩表中没有与学生表中 ID 为 4 的记录匹配,则最终的结果为:

idnamescorestudent_id
1张三801
2李四902
3王五601
4钱六NULLNULL

通过使用左连接,我们可以将多张表中的数据合并到一个结果集中,使得我们可以更快捷地获取数据。

三、学习右连接

右连接(RIGHT JOIN)与左连接非常类似,只是从右表中获取所有的记录,而左表中进行匹配。同样,如果没有匹配到结果,则结果为 NULL。

右连接的语法基本形式为 SELECT * FROM 左表名 RIGHT JOIN 右表名 ON 连接条件;

以学生表和成绩表为例,可以通过以下 SQL 语句将两个表格中的数据进行合并:

SELECT *
FROM 学生表
RIGHT JOIN 成绩表
ON 学生表.id = 成绩表.student_id;

Copy

此时,返回的结果中,如果在左表(学生表)中没有匹配到数据,则会返回右表(成绩表)中的所有数据,并对于没有匹配的数据返回 NULL。例如学生表中没有与成绩表中 student_id 为 3 的记录匹配,则最终结果为:

idnamescorestudent_id
1张三801
2李四902
1张三603
4钱六NULLNULL

通过这个例子可以看到,使用右连接同样可以将多个表的数据合并到一个结果集中,通过灵活地应用左连接和右连接,可以从不同的视角来查询需要的数据。

四、总结

总的来说,学习 MySQL 的左连接和右连接是非常重要的,这些技术可以帮助我们更好地处理复杂的多个表的关联数据