当前位置: 首页 > wzjs >正文

公司网站建设工作重点杨陵区住房和城乡建设局网站

公司网站建设工作重点,杨陵区住房和城乡建设局网站,常州网站建设选思创,老外用网页设计软件wordpress sharp在MySQL中,CTE(Common Table Expressions,通用表表达式)是一种简洁而强大的语法,用于构建临时的结果集,通常用于简化复杂查询。CTE通过关键字 WITH引入,定义一个可以在后续查询中引用的临时结果…

在MySQL中,CTE(Common Table Expressions,通用表表达式)是一种简洁而强大的语法,用于构建临时的结果集,通常用于简化复杂查询。CTE通过关键字 WITH引入,定义一个可以在后续查询中引用的临时结果集。CTE有两种类型:普通CTE和递归CTE。

一、普通CTE

普通CTE用于定义一个非递归的临时结果集,通常用于提高查询的可读性和维护性。

1. 语法

普通CTE的基本语法如下:

WITH cte_name (column1, column2, ...)
AS
(SELECT column1, column2, ...FROM table_nameWHERE condition
)
SELECT *
FROM cte_name;
​
2. 示例

假设我们有一个名为 employees的表,结构如下:

CREATE TABLE employees (emp_id INT,emp_name VARCHAR(100),dept_id INT,salary DECIMAL(10, 2)
);INSERT INTO employees (emp_id, emp_name, dept_id, salary) VALUES
(1, 'Alice', 1, 5000.00),
(2, 'Bob', 2, 6000.00),
(3, 'Charlie', 1, 5500.00),
(4, 'David', 3, 7000.00),
(5, 'Eve', 2, 6500.00);
​

我们希望查询部门ID为1的所有员工信息,可以使用普通CTE:

WITH dept1_employees AS (SELECT emp_id, emp_name, salaryFROM employeesWHERE dept_id = 1
)
SELECT *
FROM dept1_employees;
​

该查询结果为:

+--------+----------+--------+
| emp_id | emp_name | salary |
+--------+----------+--------+
| 1      | Alice    | 5000.00|
| 3      | Charlie  | 5500.00|
+--------+----------+--------+
​
二、递归CTE

递归CTE用于解决具有层级关系的数据查询问题,如组织结构、类别层级等。递归CTE由两个部分组成:锚定成员(非递归部分)和递归成员。

1. 语法

递归CTE的基本语法如下:

WITH RECURSIVE cte_name (column1, column2, ...)
AS
(-- 锚定成员SELECT column1, column2, ...FROM table_nameWHERE conditionUNION ALL-- 递归成员SELECT column1, column2, ...FROM cte_nameJOIN table_name ON condition
)
SELECT *
FROM cte_name;
​
2. 示例

假设我们有一个名为 employees的表,包含员工及其经理的信息:

CREATE TABLE employees (emp_id INT,emp_name VARCHAR(100),manager_id INT
);INSERT INTO employees (emp_id, emp_name, manager_id) VALUES
(1, 'Alice', NULL),
(2, 'Bob', 1),
(3, 'Charlie', 2),
(4, 'David', 1),
(5, 'Eve', 3);
​

我们希望查询员工Alice的所有直接和间接下属,可以使用递归CTE:

WITH RECURSIVE subordinates AS (-- 锚定成员:Alice本身SELECT emp_id, emp_name, manager_idFROM employeesWHERE emp_name = 'Alice'UNION ALL-- 递归成员:Alice的下属及其下属SELECT e.emp_id, e.emp_name, e.manager_idFROM employees eJOIN subordinates s ON e.manager_id = s.emp_id
)
SELECT *
FROM subordinates;
​

该查询结果为:

+--------+----------+------------+
| emp_id | emp_name | manager_id |
+--------+----------+------------+
| 1      | Alice    | NULL       |
| 2      | Bob      | 1          |
| 3      | Charlie  | 2          |
| 4      | David    | 1          |
| 5      | Eve      | 3          |
+--------+----------+------------+
http://www.dtcms.com/wzjs/537892.html

相关文章:

  • 街头小吃加盟网站建设网页网站原型图占位符怎么做
  • 传奇高端网站设计制作开发一个企业网站要多少钱
  • 鞍山企业做网站数据公司如何卖数据
  • 沈阳网站开发工程师招聘网公司网站改版多少钱
  • 网站手机版怎么制作网站在线服务
  • 东莞企业型网站建设如何创建目录wordpress
  • 深圳市浩天建设网站用户体验较好的网站
  • 顺丰电子商务网站建设广西壮族自治区官网
  • 手机网站 开发者模式成都 网页设计
  • 网站建设yankt工作方案的格式及范文
  • 什么是网站维护费ui设计师学校
  • 上海网站推广软件地方购物网站盈利模式
  • node框架做网站php怎么建立网站
  • 网站建设和微信小程序教人做窗帘的视频网站
  • 国家建设工程信息网站WordPress小工具吗美化
  • 山东省住房和城乡建设厅网站主页国外网站注册
  • 创造app软件信息流优化师工作总结
  • 手机网站建设与布局信息手机网站模板下载
  • 江苏省建设工程协会网站广告最多的网站
  • 移动网站推广如何优化大连网站建设要多少钱
  • 建设银行如何进行网站冻结wordpress 短网址
  • 宏大建设集团有限公司网站wordpress空间租赁
  • 建站费用参考软件ui设计怎么做网站
  • 有了服务器怎么做网站惠州企业网站设计
  • 同ip网站怎么做网站维护升级
  • 门户网站的三个基本特征ps网页设计步骤
  • 优化整站秦皇岛网站建设服务
  • 计算机的网站建设高防服务器租用
  • 什么网站可以做私房菜外卖宸建设计网站
  • 新零售型网站开发用c 做网站和数据库方法