SQL JOIN 的类型17 Mar 2025 | 6 分钟阅读 SQL JOINSQL Join 用于根据定义的条件从两个或多个表中获取或组合数据(行或列)。 表 1:订单
表 2:客户
现在,我们有两个表:订单 (Order) 和客户 (Customer)。两个表中都有一个共同的 CustomerID 列。因此,编写 SQL 查询来定义通用关系,以从两个表中选择匹配的记录。 执行上述 SQL 查询后,它会产生以下输出:
SQL Join 的类型SQL 中使用了不同类型的连接: Inner Join内连接用于选择两个表中所有匹配的行或列,或者只要定义的条件在 SQL 中有效。 语法 我们可以通过 Venn 图表示内连接,如下所示: ![]() 表 1:学生
表 2:教师
我们有两个表:学生 (Students) 表和教师 (Teachers) 表。让我们编写 SQL 查询,使用 INNER JOIN 连接表,如下所示: 执行查询后,它会产生下表。 ![]() 自然连接这是一种内连接类型,根据两个表中存在的相同列名和相同数据类型连接两个或多个表。 语法 我们有两个表:学生 (Students) 表和教师 (Teachers) 表。让我们编写 SQL 查询,使用 Natural JOIN 连接表,如下所示: 执行上述查询后,它会产生下表。 ![]() LEFT JOINLEFT JOIN 用于从左表 (table1) 中检索所有记录,并从右表 (table2) 中检索匹配的行或列。如果两个表不包含任何匹配的行或列,则返回 NULL。 语法 我们也可以通过 Venn 图表示左连接,如下所示: ![]() 注意:在某些数据库中,LEFT JOIN 也称为 LEFT OUTER JOIN。表 1:产品详细信息
表 2:客户详细信息
我们有两个表:产品详细信息 (Product_Details) 表和客户详细信息 (Customer_Details) 表。让我们编写 SQL 查询,使用 LEFT JOIN 连接表,如下所示: 执行查询后,它会产生下表。 ![]() RIGHT JOIN 或 RIGHT Outer JOINRIGHT JOIN 用于从右表 (table2) 中检索所有记录,并从左表 (table1) 中检索匹配的行或列。如果两个表不包含任何匹配的行或列,则返回 NULL。 语法 我们也可以通过 Venn 图表示右连接,如下所示: ![]() 注意:在某些数据库中,RIGHT JOIN 也称为 RIGHT OUTER JOIN。表 1:产品详细信息
表 2:客户详细信息
我们有两个表:产品详细信息 (Product_Details) 表和客户详细信息 (Customer_Details) 表。让我们编写 SQL 查询,使用 RIGHT JOIN 连接表,如下所示: 执行查询后,它会产生下表。 ![]() FULL JOIN 或 FULL Outer JOIN它是 LEFT JOIN 和 RIGHT JOIN 的组合结果集。连接的表返回两个表中的所有记录,如果表中没有找到匹配项,则放置 NULL。它也称为 FULL OUTER JOIN。 语法 或者,FULL OUTER JOIN 我们也可以通过 Venn 图表示全外连接,如下所示: ![]() 表 1:产品详细信息
表 2:客户详细信息
我们有两个表:产品详细信息 (Product_Details) 表和客户详细信息 (Customer_Details) 表。让我们编写 SQL 查询,使用 FULL JOIN 连接表,如下所示: 执行查询后,它会产生下表。 ![]() 注意:MySQL 不支持 FULL JOIN 概念,因此我们可以使用 UNION ALL 子句来合并两个表。以下是 UNION ALL 子句合并表的语法。 ![]() CROSS JOIN (交叉连接)它也称为 CARTESIAN JOIN,它返回两个或多个连接表的笛卡尔积。CROSS JOIN 生成一个表,该表将第一个表的每一行与第二个表的每一行合并。CROSS JOIN 不需要包含任何条件。 语法 或者, 表 1:产品详细信息
表 2:客户详细信息
我们有两个表:产品详细信息 (Product_Details) 表和客户详细信息 (Customer_Details) 表。让我们编写 SQL 查询,使用 FULL JOIN 连接表,如下所示: 执行查询后,它会产生下表。 ![]() 自连接 (SELF JOIN)它是一个 SELF JOIN,用于通过将表自身连接起来,就像有两个表一样来创建表。它在 SQL 语句中至少对一个表进行临时命名。 语法 Tbl1 和 Tbl2 是同一表的两个不同表别名。 表 1:产品详细信息
让我们编写 SQL 查询,使用 SELF JOIN 连接表,如下所示: 执行查询后,它会产生下表。 ![]() 下一个主题SQL JOIN |
我们请求您订阅我们的新闻通讯以获取最新更新。