在 SQL 中,外连接是关联不同表中数据的有效 ,特别是在表之间存在一对多或多对多关系的情况下。外连接有三种主要类型:左外连接、右外连接和全外连接。
左外连接
左外连接返回来自左表的所有行,以及与右表匹配的右表中的行。对于没有在右表中找到匹配行的左表行,它返回 NULL 值。它使用以下语法:SELECT * FROM 左表 LEFT JOIN 右表 ON 左表.列 = 右表.列
右外连接
与左外连接类似,右外连接返回来自右表的所有行,以及与左表匹配的左表中的行。对于没有在左表中找到匹配行的右表行,它返回 NULL 值。它的语法如下:SELECT * FROM 右表 RIGHT JOIN 左表 ON 右表.列 = 左表.列
全外连接
全外连接返回来自左表和右表的行,即使它们在对方表中没有匹配项。对于没有匹配项的行,它返回 NULL 值。它的语法如下:SELECT * FROM 左表 FULL JOIN 右表 ON 左表.列 = 右表.列
外连接的好处
SQL 外连接提供以下好处:
访问相关数据,即使表之间没有直接关联
处理一对多或多对多关系
减少查询数量,提高性能
轻松获取综合数据,用于报告和分析
外连接的示例
假设我们有两个表:客户
和订单
。客户
表包含客户详细信息,而订单
表包含客户订单。我们可以使用左外连接获取所有客户及其对应的订单信息,如下所示:
SELECT * FROM 客户 LEFT JOIN 订单 ON 客户.客户ID = 订单.客户ID
此查询将返回所有客户,包括没有订单的客户,并在这些客户的订单列中显示为 NULL。