SQL中的公用表表达式

公用表表达式(CTE)

相当于可以复用的子查询

  1. 普通公用表表达式

    sql 复制代码
    # 查询员工表中所有员工的部门详细信息
    WITH cte_emp
    AS
    (SELECT DISTINCT department_id FROM employees);
    
    SELECT *
    FROM departments d JOIN cte_emp e
    ON d.department_id = e.department_id;
  2. 递归公用表表达式

    sql 复制代码
    # 找出公司中所有的下下属
    # 找到第一代管理者(老大)
    WITH RECURSIVE cte
    AS
    (SELECT employee_id, last_name, manager_id, 1 AS n
    FROM employees
    WHERE employee_id = 100;
    UNION ALL
    SELECT a.employee_id, a.last_name, a.manager_id, n+1
    FROM employees AS a JOIN cte
    ON a.manager_id = cte.employee_id
    )
    
    SELECT employee_id, last_name
    FROM cte
    WHERE n >= 3;
相关推荐
qq_206901391 分钟前
如何在 WordPress 中通过邮箱获取用户 ID(PHP 实现)
jvm·数据库·python
ycjunhua5 分钟前
windows 安装PostgreSQL 数据库
数据库·windows·postgresql
liliangcsdn8 分钟前
多轮对话长上下文-增量摘要和结构化摘要示例
服务器·数据库·microsoft
NineData13 分钟前
NineData 5.0 产品发布和生态伙伴大会,圆满举办!
运维·数据库·人工智能
Chasing__Dreams25 分钟前
Mysql--基础知识点--110--select ... lock in share mode VS select ... for share
数据库·mysql
aXin_ya28 分钟前
Redis 网络模型 内存回收
数据库·redis·缓存
一 乐34 分钟前
咖啡商城|基于springboot + vue咖啡商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·咖啡商城系统
画堂秋34 分钟前
网站爬取实例操作
数据库·爬虫
Polar__Star38 分钟前
HTML函数在多GPU系统中如何调用_显卡切换机制说明【汇总】
jvm·数据库·python
2301_813599551 小时前
mysql为什么不要在索引列上做运算_mysql函数索引使用场景
jvm·数据库·python