admin 管理员组

文章数量: 887018


2024年2月25日发(作者:queueuserworkitem 串行)

mysql join用法

MySQL中提供了多种JOIN方式,来满足我们对于不同数据表中数据的连接需求。本文将介绍MySQL的JOIN用法,包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN。

一、INNER JOIN

INNER JOIN即内连接,其作用是将两个表中的符合条件的数据进行匹配,并返回匹配结果。INNER JOIN返回的数据中会包含两个表中都有的记录。其语法如下:

SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;

其中,ON为连接两张表的条件。接下来,我们举个例子,说明INNER JOIN的用法:

假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。

我们要在查询结果中,显示出学生的姓名、年龄、数学成绩、英语成绩和语文成绩,那么可以这样写:

SELECT , , ,

h, e FROM students INNER JOIN

scores ON = ;

二、LEFT JOIN

LEFT JOIN即左连接,其作用是将左侧表中的所有数据与右侧表中符合条件的数据返回,并在右侧表中没有匹配到的数据用NULL进行填充。其语法如下:

SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;

同样,ON为连接两张表的条件。接下来,我们举个例子,说明LEFT JOIN的用法:

假设我们有以下两个表:表1:students(id, name, age);表2:

scores(id, math, english, chinese)。

我们要在查询结果中,显示出学生的姓名、年龄、数学成绩、英语成绩和语文成绩,如果某个学生没有对应的成绩,则用NULL代替,那么可以这样写:

SELECT , , ,

h, e FROM students LEFT JOIN scores

ON = ;

三、RIGHT JOIN

RIGHT JOIN即右连接,其作用是将右侧表中的所有数据与左侧表中符合条件的数据返回,并在左侧表中没有匹配到的数据用NULL进行填充。其语法如下:

SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;

同样,ON为连接两张表的条件。接下来,我们举个例子,说明RIGHT JOIN的用法:

假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。

我们要在查询结果中,显示出学生的姓名、年龄、数学成绩、英语成绩和语文成绩,如果成绩表中某个学生的ID不存在,则用NULL代替学生信息,那么可以这样写:

SELECT , , ,

h, e FROM students RIGHT JOIN

scores ON = ;

四、FULL OUTER JOIN

FULL OUTER JOIN即全外连接,其作用是将左右两侧表中的所有数据返回,并在没有匹配到的数据用NULL进行填充。MySQL中没有提供FULL OUTER JOIN语法,不过可以使用UNION和LEFT JOIN、RIGHT

JOIN进行组合,来达到FULL OUTER JOIN的效果。其语法如下:

SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名 UNION SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名 =

表2.列名;

接下来,我们举个例子,说明FULL OUTER JOIN的用法:

假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。

我们要在查询结果中,显示出学生的所有信息,以及对应的成绩信息(如果没有对应的成绩则用NULL代替),那么可以这样写:

SELECT , , ,

h, e FROM students LEFT JOIN scores

ON = UNION SELECT ,

, , h, e

FROM students RIGHT JOIN scores ON = ;

以上就是MySQL的JOIN用法,包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN,通过对不同表的连接方式,可以实现不同数据返回需求。


本文标签: 数据 成绩 表中