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

网站用什么字体做正文邯郸网站建设公司排名

网站用什么字体做正文,邯郸网站建设公司排名,淘宝上开个网站建设,360建筑网发布的信息怎么删除力扣题 1、题目地址 1270. 向公司 CEO 汇报工作的所有人 2、模拟表 员工表#xff1a;Employees Column NameTypeemployee_idintemployee_namevarcharmanager_idint employee_id 是这个表具有唯一值的列。这个表中每一行中#xff0c;employee_id 表示职工的 ID#x…力扣题 1、题目地址 1270. 向公司 CEO 汇报工作的所有人 2、模拟表 员工表Employees Column NameTypeemployee_idintemployee_namevarcharmanager_idint employee_id 是这个表具有唯一值的列。这个表中每一行中employee_id 表示职工的 IDemployee_name 表示职工的名字manager_id 表示该职工汇报工作的直线经理。这个公司 CEO 是 employee_id 1 的人。 3、要求 编写解决方案找出所有直接或间接向公司 CEO 汇报工作的职工的 employee_id 。 由于公司规模较小经理之间的间接关系 不超过 3 个经理 。 可以以 任何顺序 返回无重复项的结果。 返回结果示例如下。 示例 1 输入 Employees 表 employee_idemployee_namemanager_id1Boss13Alice32Bob14Daniel27Luis48Jhon39Angela877Robert1 输出 employee_id27747 解释 公司 CEO 的 employee_id 是 1. employee_id 是 2 和 77 的职员直接汇报给公司 CEO。 employee_id 是 4 的职员间接汇报给公司 CEO 4 -- 2 -- 1 。 employee_id 是 7 的职员间接汇报给公司 CEO 7 -- 4 -- 2 -- 1 。 employee_id 是 3, 8 9 的职员不会直接或间接的汇报给公司 CEO。 4、代码编写 我的写法 代码 SELECT employee_id FROM Employees WHERE manager_id 1 AND employee_id ! 1 UNION ALL SELECT employee_id FROM Employees WHERE manager_id IN (SELECT employee_idFROM EmployeesWHERE manager_id 1 AND employee_id ! 1 ) UNION ALL SELECT employee_id FROM Employees WHERE manager_id IN (SELECT employee_idFROM EmployeesWHERE manager_id IN (SELECT employee_idFROM EmployeesWHERE manager_id 1 AND employee_id ! 1) )代码分析 要求里面有提到由于公司规模较小经理之间的间接关系 不超过 3 个经理 所以分为三个即可。 直接连接经理(第一个) SELECT employee_id FROM Employees WHERE manager_id 1 AND employee_id ! 1间接连接经理(UNION ALL 连接重复不去重第二个和第三个) SELECT employee_id FROM Employees WHERE manager_id IN (SELECT employee_idFROM EmployeesWHERE manager_id 1 AND employee_id ! 1 ) UNION ALL SELECT employee_id FROM Employees WHERE manager_id IN (SELECT employee_idFROM EmployeesWHERE manager_id IN (SELECT employee_idFROM EmployeesWHERE manager_id 1 AND employee_id ! 1) )网友给出的连表写法适用于关系层次不深的情景 代码 SELECT DISTINCT e1.employee_id FROM Employees e1, Employees e2, Employees e3 WHERE e1.manager_id e2.employee_id AND e2.manager_id e3.employee_id AND e3.manager_id 1 AND e1.employee_id ! 1代码分析 1、e1.employee_id ! 1 这个是排除掉经理3、2、4、7、8、9、77 2、e3.manager_id 1 这个是找出直接连接经理的员工277 3、e2.manager_id e3.employee_id 这个是找出直接连接经理的员工的下级员工2 - 477 4、e1.manager_id e2.employee_id 这个是找出上面第 3 点下级员工的下级员工2 - 4 - 777 要从连表去分析太乱了上面已经是我暂时能理解到的了。 有比较好的理解的小伙伴可以在评论区发表一下自己的见解。 递归写法 with recursive 递归语法知识 1、在 with… as 中声明需要递归的字段 语法 WITH RECURSIVE 表名 (n) AS ( select 初始值 from tableunion allselect 递归内容 from 表名 where (终止条件) ) [ SELECT | INSERT | UPDATE | DELETE ]例子 WITH RECURSIVE cte (n) AS (SELECT 1 # 初始值UNION ALLSELECT n 1 FROM cte WHERE n 5 # 递归内容 from cte 表 ) SELECT * FROM cte;输出结果 ----- | n | ----- | 1 | | 2 | | 3 | | 4 | | 5 | -----如上所示可以看出上面 SELECT 1 就代表了输出结果 第一行的数据也决定了 n 的初始值就是 1下面 SELECT n 1 FROM cte WHERE n 5 是根据上面标注 cte(n) 的 n 为递归字段重复查询时只要 n 5 就不断执行 n 1 操作当 n 4 时n 满足小于 5 的条件查询出 n 1 5输出 5n 也变成 5这时不满足 n 5 的条件就查询结束了。 2、在 sql 语句中第一段的初始值内声明变量 语法 WITH recursive 表名 AS ( 初始语句非递归部分 UNION ALL 递归部分语句 ) [ SELECT | INSERT | UPDATE | DELETE ]例子 WITH RECURSIVE cte AS (SELECT 1 AS n, CAST(abc AS CHAR(20)) AS strUNION ALLSELECT n 1, CONCAT(str, str) FROM cte WHERE n 3 ) SELECT * FROM cte;输出结果 ------------------- | n | str | ------------------- | 1 | abc | | 2 | abcabc | | 3 | abcabcabcabc | -------------------如上所示可以看出 SELECT 1 AS n, CAST(abc AS CHAR(20)) AS str 代表了输出结果 第一行的数据也决定了 n 的初始值是 1str 的初始值是 abc两个都为递归字段和上面一样只要满足下面递归语句的条件 n 3就累积操作n 1 就是 1 → 2 → 3CONCAT(str, str) 就是 abc → abcabc → abcabcabcabc 3、参考 SQLWith recursive 递归用法 MySQL8 使用 with recursive 实现递归 代码 WITH RECURSIVE cte AS (SELECT employee_id FROM Employees a WHERE employee_id ! 1 AND manager_id 1UNION ALLSELECT a.employee_id FROM Employees AS a JOIN cte AS b ON a.manager_id b.employee_id ) SELECT * FROM cte;代码分析 1、对 employee_id 进行初始化操作赋予初始值也为递归字段查询到直接连接经理的员工(277) SELECT employee_id FROM Employees WHERE employee_id ! 1 AND manager_id 12、开始时上面初始化操作后直接 employee_id 赋值到 b.employee_id再查询出 a.employee_id 赋值到 employee_id其实来说 employee_id 就是 b.employee_id我们可以看到上面 sqlWITH RECURSIVE cte AS 用了 cte初始值用了 employee_id 作为递归字段下面递归语句里面 cte 别名为 b那肯定 b.employee_id 就是 employee_id 了如果有说错可以标注或评论指出这里就相当于是查询出直接连接经理员工下面的间接员工2 - 4772 - 4 - 777 SELECT a.employee_id FROM Employees AS a JOIN cte AS b ON a.manager_id b.employee_id3、第一次277第二次2 - 477第三次2 - 4 - 777 SELECT * FROM cte;4、会发现确实是 2 和 77 直接连接经理先输出之后再输出间接连接经理的 | employee_id | | ----------- | | 2 | | 77 | | 4 | | 7 |
http://www.pierceye.com/news/369902/

相关文章:

  • 黄骅港信息吧windows优化大师好用吗
  • 网站编辑怎么做哪些知名网站用wordpress
  • 兰州网站seo收费标准小程序和wordpress
  • 北京市网站设计h5制作平台免费推荐
  • 青岛网站设计企业网络营销个人感悟小结
  • 酒店网站源码宁夏网站制作哪家好
  • 租个网站服务器多少钱电子商务网站的建设流程
  • 正规营销型网站定制上海缘震网络科技有限公司
  • 网站建设的目的个人养老金查询
  • 沧州英文模板建站长沙 网站建设公司
  • 广州网站备案公司南昌网站建设网站推广
  • 龙岗外贸网站建设公司博览局网站建设
  • 怎么做淘课网站百度网站优化方案
  • 余姚做网站深圳华强北怎么了
  • 网站建设单元格边距WordPress进
  • 备案后的域名改网站名沪深300指数怎么买
  • 行业网站维护买电脑wordpress
  • 廊坊兼职网站建设网站图片怎么做的高级
  • pc网站转换手机网站wap用jsp源码做网站
  • 重庆慕尚网站建设在线美工
  • 珠海网站设计培训源码网站
  • 中山好的做网站的公司网站seo外包
  • 付费的网站是指展览馆网站建设方案书
  • 免费整套ppt模板下载网站网络营销推广目的
  • 公司 做网站企业手机app开发公司
  • 玉树电子商务网站建设多少钱做类似淘宝一样的网站
  • 住房城乡与建设厅网站燕郊网站开发
  • 欧美风格网站特点wordpress 电影主题
  • 烟台网站建设网站推广团队logo标志设计
  • 怎么注册建设银行网站如何创建属于个人网站