什么是外连接?简单易懂的用法和优缺点

一、外连接:

1、外连接概念:多表查询时,至少返回一个表里的所有记录,根据匹配条件有选择性的返回另一张表的记录(即两表交集的部分)

2、外连接分类及语法

1)左外连接

语法:SELECT <字段列表> FROM <表1> LEFT [OUTER] JOIN <表2> ON <连接条件>

2)右外连接

语法:SELECT <字段列表> FROM <表1> RIGHT [OUTER] JOIN <表2> ON <连接条件>

3、例:

什么是外连接?简单易懂的用法和优缺点

以下查询示例 所用表关系示意图

1)在MyServer数据库查询所有员工,要求包含部门名称

A:使用左外连接

USEMyServer
GOSELECTE.*,D.D_Name FROMEmployee E
LEFTOUTERJOINDepartment D ONE.D_Id=D.D_Id
GO

B:使用右外连接

USEMyServer
GOSELECTE.*,D.D_Name FROMDepartment D
RIGHTJOINEmployee E ONE.D_Id=D.D_Id --OUTER可省略GO

4、外连接的特点:

1)参与外连接的表有主从之分;

2)以主表的每行数所匹配从表的数据列,将符合条件的数据直接返回到结果集中,对哪些不符合条件的列,将被填上NULL值再返回到结果集中;

3)左连接与右连接可进行互换,只需变化表的位置即可,通常是用左连接更多。

二、自连接:

1、自连接概念:故名思义,就是自己跟自己进行连接,即可用内连接查询,也可用外连接查询,但表必须要使用别名。

2、语法:

1)内连接方式:

SELECT * FROM <表名1 AS 别名1>INNER JOIN <表名1 AS 别名2﹥ON <连接条件>...

2)外连接方式:

SELECT * FROM <表名1 AS 别名1> LEFT JOIN <表名1 AS 别名2﹥ON <连接条件>...

3、例:

1)查询员工表里员工对应的上司,包含员工姓名、上司姓名两字字段

USEMyServer
GOSELECTA.E_Name 员工姓名,B.E_Name 上司姓名 FROMEmployee A
JOINEmployee B ONA.E_Lea=B.E_Id
GO

查询结果

2)查询员工表里所有员工对应的上司,包含员工姓名、上司姓名两字字段

USEMyServer
GOSELECTA.E_Name 员工姓名,B.E_Name 上司姓名 FROMEmployee A
LEFTJOINEmployee B ONA.E_Lea=B.E_Id
GO

什么是外连接?简单易懂的用法和优缺点

职业发展

选择运算的技巧有哪些?如何进行选择运算?选择运算的方法和步骤

2024-3-3 16:27:35

职业发展

PLC教程怎么学?初学者如何入门PLC编程

2024-3-3 16:52:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索