SQL 面试题 目录

SQL 中自连接 (SELF JOIN) 的用法是什么?

推荐答案

-- -------------------- ---- -------
------ 
    -------------- -- -----------
    ---------------- -- -------------
    ---------------- -- -----------
---- 
    --------- --
---- 
    --------- --
-- 
    ------------- - ---------------

本题详细解读

什么是自连接 (SELF JOIN)?

自连接是指在同一张表中进行连接操作。通常用于处理表中的层次结构数据,例如员工和经理的关系。自连接通过将表与自身进行连接,使得可以在同一张表中查找相关的记录。

自连接的语法

自连接的语法与普通的连接操作类似,唯一的区别是连接的两张表实际上是同一张表。为了区分连接的两个实例,通常会给表起不同的别名。

-- -------------------- ---- -------
------ 
    ----------- 
    ----------
---- 
    ---------- --
---- 
    ---------- --
-- 
    ---------------- - -----------------

自连接的常见应用场景

  1. 层次结构数据:例如员工表中,每个员工都有一个经理,经理本身也是员工。通过自连接可以查询每个员工及其经理的信息。
  2. 查找重复记录:通过自连接可以查找表中重复的记录。
  3. 比较同一表中的不同记录:例如查找同一表中某些字段值相同的记录。

示例解析

假设有一个员工表 employees,结构如下:

employee_id employee_name manager_id
1 Alice NULL
2 Bob 1
3 Charlie 1
4 David 2

我们想要查询每个员工及其经理的名字,可以使用以下 SQL 语句:

-- -------------------- ---- -------
------ 
    -------------- -- -----------
    ---------------- -- -------------
    ---------------- -- -----------
---- 
    --------- --
---- 
    --------- --
-- 
    ------------- - ---------------

查询结果如下:

EmployeeID EmployeeName ManagerName
2 Bob Alice
3 Charlie Alice
4 David Bob

在这个例子中,e1e2employees 表的两个别名。e1 代表员工,e2 代表经理。通过 e1.manager_id = e2.employee_id 条件,我们将员工与其经理关联起来。

纠错
反馈