You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询各部门所有员工:基于dept与emp表的SQL需求

查询所有部门的全部员工(含无员工的部门)

嘿,这就帮你搞定这个需求!要返回所有部门(包括没有员工的部门)及其下属员工,我们需要用左外连接来关联部门表和员工表,确保部门表的所有记录都被保留。

首先先明确两张表的结构:

部门表(dept)结构

字段名是否为空字段类型
DEPTNONOT NULLNUMBER(2)
DNAMEVARCHAR2(14)
LOCVARCHAR2(13)

员工表(emp)结构

字段名是否为空字段类型
EMPNONOT NULLNUMBER(4)
ENAMEVARCHAR2(10)
JOBVARCHAR2(9)
MGRNUMBER(4)
HIREDATEDATE
SALNUMBER(7,2)
COMMNUMBER(7,2)
DEPTNONUMBER(2)

实现查询的SQL语句

SELECT 
    d.DEPTNO,
    d.DNAME,
    d.LOC,
    e.EMPNO,
    e.ENAME,
    e.JOB,
    e.MGR,
    e.HIREDATE,
    e.SAL,
    e.COMM
FROM 
    dept d
LEFT JOIN 
    emp e ON d.DEPTNO = e.DEPTNO
ORDER BY 
    d.DEPTNO, e.EMPNO;

语句说明

  • 使用LEFT JOIN(左外连接):这是核心,它会保留dept表的所有记录,即使某个部门没有对应的员工,员工相关字段会显示NULL
  • 表别名d和e:让SQL代码更简洁易读,避免重复写表名
  • ORDER BY子句:按部门编号和员工编号排序,让结果按部门分组,同一部门内员工有序排列

内容的提问来源于stack exchange,提问作者chomprrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:04:51