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

中国最著名网站建设公司广州seo和网络推广

中国最著名网站建设公司,广州seo和网络推广,辽宁省工程造价信息网,做网站外包公司名称大全在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/181321.html

相关文章:

  • 甘谷县建设局网站网站建设价格
  • vs2013如何做网站自己做的网站怎么推广
  • 自己电脑做网站访问快吗百度百科分类方法
  • 怎么做网站测试云南最新消息
  • 工信部网站备案查询 验证码杭州网站优化平台
  • 仿做静态网站多少钱河源疫情最新通报
  • 微信小程序第三方免费制作平台东莞网站优化关键词排名
  • 杭工e家app是哪个网站做的惠州seo优化服务
  • 网站的空间域名济南网站建设哪家专业
  • 网站建设在作用是什么意思企业网站建设规划
  • 网站建设规范布局有几部分武汉seo价格
  • 网站开发google手机怎么创建网站
  • 重庆所有做网站的公司有哪些免费发布外链
  • dw做的网站怎么在vs关键词调词平台费用
  • 东莞政府网站建设百度seo搜索排名
  • 做目录的网站爱站网长尾挖掘工具
  • 搜索企业的软件哪个好游戏优化
  • 网站底部的图标中文搜索引擎排行榜
  • 网站建立连接不安全怎么处理竞价 推广
  • 安卓app开发常州网站建设优化
  • seo关键词排名优化提升百度免费seo
  • 江苏建设工程集团深圳seo优化排名公司
  • 招聘网站建设人员要求网站seo优化课程
  • 郑州电商小程序定制青岛seo经理
  • 阿里云快速备份网站十大网络推广公司排名
  • 建设网站一般要多钱大学生网页设计主题
  • 做网站开发用什么软件长沙搜索排名优化公司
  • 做独立网站需要注意些什么手续外贸营销网站制作
  • 2017做哪些网站能致富十大软件培训机构
  • 网店起名大全免费取名windows优化大师怎么卸载