admin 管理员组

文章数量: 1086019


2024年3月12日发(作者:分布式数据库是什么意思)

Mysql中JOIN ON用法

在MySQL中,JOIN操作是将两个或多个表中的记录相关联的一种方式。JOIN操作

通过使用共同列将行从一个表与另一个表关联起来,从而允许我们在查询中获取有

关这些表之间关系的信息。

在JOIN操作中,ON子句用于指定连接条件。它定义了连接两个表时使用的列,并

且指定了这些列之间的关系。本文将介绍MySQL中JOIN ON用法,并提供一些实例

来帮助理解。

INNER JOIN

INNER JOIN是最常用的JOIN类型之一,它返回两个表之间匹配行的交集。使用

INNER JOIN时,ON子句指定了连接条件。

语法如下:

SELECT 列名

FROM 表1

INNER JOIN 表2

ON 表1.列 = 表2.列;

下面是一个示例:

SELECT er_id, _id

FROM customers

INNER JOIN orders

ON er_id = er_id;

上述语句将返回customers和orders两个表之间customer_id相等的行。

LEFT JOIN

LEFT JOIN也被称为LEFT OUTER JOIN。它返回左边(左侧)表中所有行以及右边

(右侧)表中匹配行的结果集。如果右边表没有匹配行,则返回NULL值。

语法如下:

SELECT 列名

FROM 表1

LEFT JOIN 表2

ON 表1.列 = 表2.列;

下面是一个示例:

SELECT er_id, _id

FROM customers

LEFT JOIN orders

ON er_id = er_id;

上述语句将返回所有customers表中的行,并且如果有匹配的orders表中的行,

也会返回它们。如果没有匹配的行,则_id列将包含NULL值。

RIGHT JOIN

RIGHT JOIN也被称为RIGHT OUTER JOIN。它返回右边(右侧)表中所有行以及左

边(左侧)表中匹配行的结果集。如果左边表没有匹配行,则返回NULL值。

语法如下:

SELECT 列名

FROM 表1

RIGHT JOIN 表2

ON 表1.列 = 表2.列;

下面是一个示例:

SELECT er_id, _id

FROM customers

RIGHT JOIN orders

ON er_id = er_id;

上述语句将返回所有orders表中的行,并且如果有匹配的customers表中的行,

也会返回它们。如果没有匹配的行,则er_id列将包含NULL值。

FULL JOIN

FULL JOIN也被称为FULL OUTER JOIN。它返回两个表之间所有匹配和不匹配的行。

语法如下:

SELECT 列名

FROM 表1

FULL JOIN 表2

ON 表1.列 = 表2.列;

下面是一个示例:

SELECT er_id, _id

FROM customers

FULL JOIN orders

ON er_id = er_id;

上述语句将返回所有customers和orders表中的行,并且如果有匹配的行,也会

返回它们。如果没有匹配的行,则对应的列将包含NULL值。

SELF JOIN

SELF JOIN是一种特殊类型的JOIN操作,它将表与自身进行连接。使用SELF JOIN

可以在同一个表中比较不同行之间的数据。

语法如下:

SELECT 列名

FROM 表 AS 表1, 表 AS 表2

WHERE 表1.列 = 表2.列;

下面是一个示例:

SELECT ee_name, ee_name AS manager_name

FROM employees e

INNER JOIN employees m

ON r_id = ee_id;

上述语句将返回员工表中每个员工及其经理的姓名。

总结

通过本文,我们了解了MySQL中JOIN ON用法及其各种类型(INNER JOIN、LEFT

JOIN、RIGHT JOIN、FULL JOIN和SELF JOIN)。JOIN操作是在查询中使用多个表

时非常有用的工具,它允许我们根据共同列将数据关联起来,并获得更丰富的查询

结果。在编写JOIN查询时,请确保正确指定连接条件,以获取准确和符合预期的

结果。


本文标签: 连接 返回 匹配 表中 条件