查询篇 JOIN语法

发布时间 2023-10-16 17:04:39作者: seeding

JOIN语法讲解

在 MySQL 中,JOIN 是用于将两个或多个表中的行基于相关列的值进行连接的操作。这里将介绍几种常见的 JOIN 类型及其语法。

  1. 内连接(INNER JOIN):返回两个表中匹配的行。
SELECT 列名
FROM 表1
INNER JOIN 表2 ON 表1.列 = 表2.列;
  1. 左连接(LEFT JOIN):返回左表中的所有行,以及与右表匹配的行。
SELECT 列名
FROM 表1
LEFT JOIN 表2 ON 表1.列 = 表2.列;
  1. 右连接(RIGHT JOIN):返回右表中的所有行,以及与左表匹配的行。
SELECT 列名
FROM 表1
RIGHT JOIN 表2 ON 表1.列 = 表2.列;
  1. 全连接(FULL JOIN):返回两个表中的所有行,无论是否匹配。
SELECT 列名
FROM 表1
FULL JOIN 表2 ON 表1.列 = 表2.列;

在上述语法中,表1表2 是要连接的表名, 是用于连接的列名。通过 ON 关键字指定连接条件,即两个表中要匹配的列。通过 SELECT 子句选择要返回的列。

还可以使用更复杂的 JOIN 语句,例如在一个查询中连接多个表,或者在连接条件中使用多个列。根据具体情况选择适当的 JOIN 类型和语法来满足你的需求。

表明过长可以使用AS语法简写【推荐】

如果表名太长,你可以使用 AS 关键字为表起一个别名,以简化查询语句。以下是使用别名的示例:

  1. 内连接(INNER JOIN):

    SELECT 列名
    FROM 表1 AS 别名1
    INNER JOIN 表2 AS 别名2 ON 别名1.列 = 别名2.列;
    
  2. 左连接(LEFT JOIN):

    SELECT 列名
    FROM 表1 AS 别名1
    LEFT JOIN 表2 AS 别名2 ON 别名1.列 = 别名2.列;
    
  3. 右连接(RIGHT JOIN):

    SELECT 列名
    FROM 表1 AS 别名1
    RIGHT JOIN 表2 AS 别名2 ON 别名1.列 = 别名2.列;
    
  4. 全连接(FULL JOIN):

    SELECT 列名
    FROM 表1 AS 别名1
    FULL JOIN 表2 AS 别名2 ON 别名1.列 = 别名2.列;
    

在上述语法中,别名1别名2 是为表起的别名,用于代替长表名。你可以根据需要选择适当的别名,并在查询中使用它们来引用相应的表。

使用别名不仅可以简化查询语句,还可以提高可读性和维护性,特别是在连接多个表时。