本文主要是介绍【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?
- 1、内连接(Inner Join)
- 2、左外连接(Left Outer Join)
- 3、右外连接(Right Outer Join)
- 4、全外连接(Full Outer Join)
- 5、交叉连接(Cross Join)
💖The Begin💖点点关注,收藏不迷路💖 |
在数据库查询中,连接(Join)是一种用于将两个或多个表中的行联合起来的操作。在实际应用中,常见的连接类型包括内连接、外连接、交叉连接以及全外连接,每种连接类型都有其独特的特点和用途。
详解见: Mysql数据库入门基础篇–mysql 多表查询
1、内连接(Inner Join)
内连接是连接操作中最常见的一种类型。它只返回两个表中在连接条件下匹配的行。简而言之,内连接只包含那些在两个表中都存在匹配值的行。
SELECT a.*, b.*
FROM table1 AS a
INNER JOIN table2 AS b ON a.key = b.key;
2、左外连接(Left Outer Join)
左外连接会返回左表中的所有行,以及右表中与左表中行匹配的行。如果右表中没有匹配的行,那么结果集中右表对应的列将包含 NULL 值。
SELECT a.*, b.*
FROM table1 AS a
LEFT JOIN table2 AS b ON a.key = b.key;
3、右外连接(Right Outer Join)
右外连接与左外连接类似,不过它返回的是右表中的所有行,以及左表中与右表中行匹配的行。如果左表中没有匹配的行,那么结果集中左表对应的列将包含 NULL 值。
SELECT a.*, b.*
FROM table1 AS a
RIGHT JOIN table2 AS b ON a.key = b.key;
4、全外连接(Full Outer Join)
全外连接返回两个表中的所有行,不管另外一边的表中是否存在与它们匹配的行。 如果某一边的表中没有匹配的行,那么结果集中对应的列将包含 NULL 值。
SELECT a.*, b.*
FROM table1 AS a
FULL OUTER JOIN table2 AS b ON a.key = b.key;
5、交叉连接(Cross Join)
交叉连接是一种特殊的连接,它返回两个表的笛卡尔积,即两个表中的每一行都与另一个表中的每一行组合在一起。交叉连接不使用任何匹配或者选取条件。
SELECT a.*, b.*
FROM table1 AS a
CROSS JOIN table2 AS b;
💖The End💖点点关注,收藏不迷路💖 |
这篇关于【面试干货】什么是内连接、外连接、交叉连结、笛卡尔积?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!