LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

SQL 语句左连接右连接内连接如何使用,区别是什么?

zhenglin
2025年12月1日 10:42 本文热度 425

核心概念

连接(JOIN)用于根据两个或多个表中的列之间的关系,从这些表中查询数据。为了更直观地理解,我们假设有两个表:

员工表 (Employees)

部门表 (Departments)


内连接 (INNER JOIN)

定义:只返回两个表中连接条件匹配的记录。

结果:两个表的交集部分。

使用场景:当你只想查看在两边表中都有对应信息的记录时。例如,查询所有有部门的员工及其部门信息。

SQL语句


SELECT 

    e.name,

    d.department_name

FROM 

    Employees e

INNER JOIN 

    Departments d ON e.department_id = d.department_id;

 查询结果

注意:员工“王五”的department_id为NULL,在部门表中找不到匹配项,所以没有出现。部门“市场部”在员工表中没有对应的员工,所以也没有出现。



左外连接 (LEFT JOIN / LEFT OUTER JOIN)

定义:返回左表 (FROM子句中的表) 的所有记录,以及右表中连接条件匹配的记录。如果右表没有匹配的记录,则结果集中右表的部分返回NULL。

结果:左表的全集 + 右表的匹配部分。

使用场景:当你需要左表的所有记录,无论它们在右表中是否有对应项。例如,列出所有员工,并显示他们所在的部门(即使某些员工没有部门)。

SQL语句:


SELECT 

    e.name,

    d.department_name

FROM 

    Employees e

LEFT JOIN 

    Departments d ON e.department_id = d.department_id;

查询结果

注意:员工“王五”被包含在结果中,但因为他不属于任何部门,所以department_name为NULL。



右外连接 (RIGHT JOIN / RIGHT OUTER JOIN)

定义:与左连接相反。返回右表 (JOIN子句中的表) 的所有记录,以及左表中连接条件匹配的记录。如果左表没有匹配的记录,则结果集中左表的部分返回NULL。

结果:右表的全集 + 左表的匹配部分。

使用场景:当你需要右表的所有记录,无论它们在左表中是否有对应项。例如,列出所有部门,并显示部门里的员工(即使某些部门没有员工)。

SQL语句:

SELECT 

    e.name,

    d.department_name

FROM 

    Employees e

RIGHT JOIN 

    Departments d ON e.department_id = d.department_id;

查询结果

注意:部门“市场部”被包含在结果中,但因为该部门没有员工,所以name为NULL。



全外连接 (FULL OUTER JOIN)

定义:返回左表和右表中的所有记录。当某一行在另一个表中没有匹配行时,另一个表的部分将返回NULL。如果表之间有匹配的行,则返回匹配行。

结果:两个表的并集。

使用场景:当你需要看到两个表的所有数据,无论它们是否匹配。例如,生成一个包含所有员工和所有部门的完整列表。

SQL语句:


-- 注意:MySQL不支持FULL OUTER JOIN,但可用LEFT JOIN和RIGHT JOIN的UNION来实现

SELECT 

    e.name,

    d.department_name

FROM 

    Employees e

LEFT JOIN 

    Departments d ON e.department_id = d.department_id

 

UNION

 

SELECT 

    e.name,

    d.department_name

FROM 

    Employees e

RIGHT JOIN 

    Departments d ON e.department_id = d.department_id;

查询结果

注意:这个结果包含了左连接和右连接的所有记录。


总结与区别

 

​ 

参考文章:原文链接


该文章在 2025/12/1 10:56:50 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved