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

龙岗在线网站建设网络销售网站外包

龙岗在线网站建设,网络销售网站外包,广西建设厅招投标中心网站,个人动漫网站怎么做页面一、自连接(Self Join)定义:一张表自己跟自己做 JOIN,常用于表中存在层级关系(如员工表的“员工-上级”关系)。1. 显式自连接使用 JOIN 关键字明确写出连接条件。SELECT e.emp_id, e.name AS employee, m.n…

一、自连接(Self Join)

定义:一张表自己跟自己做 JOIN,常用于表中存在层级关系(如员工表的“员工-上级”关系)。

1. 显式自连接

使用 JOIN 关键字明确写出连接条件。

SELECT e.emp_id, e.name AS employee, m.name AS manager 
FROM employees e JOIN employees m ON e.manager_id = m.emp_id;

解释:

  • employees e:员工表的一个别名

  • employees m:同一张表的另一个别名,代表“经理”

  • e.manager_id = m.emp_id:连接条件

结果:员工和对应的经理名字。

2. 隐式自连接

使用旧式的 逗号连接,再在 WHERE 子句中写条件。

SELECT e.emp_id, e.name AS employee, m.name AS manager 
FROM employees e, employees m 
WHERE e.manager_id = m.emp_id;

二、外连接(Outer Join)

定义:外连接会在结果中保留一张表的所有记录,即使另一张表中没有匹配。

1. 左外连接(LEFT JOIN)

保留左表所有行,右表没有匹配时用 NULL 填充。


SELECT e.name AS employee, d.dept_name 
FROM employees e 
LEFT JOIN departments d ON e.dept_id = d.dept_id;

解释:

  • 即使某员工没有部门,也会显示出来,dept_nameNULL

2. 右外连接(RIGHT JOIN)

保留右表所有行,左表没有匹配时用 NULL 填充。

SELECT e.name AS employee, d.dept_name 
FROM employees e 
RIGHT JOIN departments d ON e.dept_id = d.dept_id;

解释:

  • 即使某部门没有员工,也会显示出来,employeeNULL。、

在开发中更常用左外连接,因为左外连接与右外连接形式其实是等价的。只不过是被动与主动的关系。

✅ 小结

  • 自连接:一张表连接自己,用于处理层级关系

  • 外连接:用于保留一张表的所有记录,左外连接和右外连接形式等价

  • 推荐做法:尽量使用显式 JOIN,清晰易读

三、子查询(嵌套select语句)

1️⃣ 单行子查询(Single-Row Subquery)

  • 子查询返回 一行一列

  • 常用于 =>< 等条件比较

示例


SELECT name, salary FROM employees WHERE salary > ( SELECT AVG(salary) FROM employees );

解释

  • 内层查询:SELECT AVG(salary) FROM employees 返回全体员工的平均工资

  • 外层查询:返回工资高于平均工资的员工

  • 结果:只显示工资高于平均值的员工


2️⃣ 多行子查询(Multi-Row Subquery)

  • 子查询返回 多行一列

  • 使用 INNOT INANYALL 等运算符

示例


SELECT name FROM employees WHERE dept_id IN ( SELECT dept_id FROM departments WHERE location = 'Beijing' );

解释

  • 内层查询:找出位于北京的部门 dept_id

  • 外层查询:查询这些部门的所有员工

  • 结果:返回在北京部门工作的员工


3️⃣ 多列子查询(Multi-Column Subquery)

  • 子查询返回 多列多行

  • 使用 (col1, col2) IN (...) 或用于 JOIN 替代

示例


SELECT name, dept_id FROM employees WHERE (dept_id, job_id) IN ( SELECT dept_id, job_id FROM job_assignments WHERE status = 'active' );

解释

  • 内层查询:找出当前有效职位和部门组合

  • 外层查询:查询符合这些组合的员工


4️⃣ 相关子查询(Correlated Subquery)

  • 子查询依赖外层查询的列

  • 每行外层数据都会执行一次子查询

示例


SELECT e1.name, e1.salary FROM employees e1 WHERE e1.salary > ( SELECT AVG(e2.salary) FROM employees e2 WHERE e2.dept_id = e1.dept_id );

解释

  • 外层查询:每个员工 e1

  • 内层查询:计算该员工所在部门的平均工资

  • 外层只保留工资高于本部门平均工资的员工


5️⃣ 子查询在 FROM 子句中

  • 子查询可以当作 临时表 使用

  • 常用于复杂统计或分组

示例


SELECT dept_id, MAX(avg_salary) AS max_avg_salary FROM ( SELECT dept_id, AVG(salary) AS avg_salary FROM employees GROUP BY dept_id ) AS dept_avg GROUP BY dept_id;

解释

  • 内层子查询:计算每个部门的平均工资

  • 外层查询:从临时表中获取最大平均工资或其他统计

http://www.dtcms.com/a/549839.html

相关文章:

  • NVIDIA NCCL 源码学习(十六)- nccl的ibgda(GIN)
  • 深度优先搜索(DFS)
  • 协会网站建设方案wordpress 以前文章灯箱
  • PCIe学习笔记
  • 处理 rstudio-server 卡死问题
  • C 盘清理技巧分享
  • 零基础小白如何高效入门项目管理?
  • 安装与切换Rust版本
  • 云服务器建立多个网站文山知名网站建设公司
  • 深圳网站建设网站制作网站推广vps一键安装wordpress
  • 定制网站和模板建站室内设计培训网课
  • 云免网站空间自己怎么做网站模块
  • 佰力博检测与您探讨压电薄膜介电温谱测试的目的
  • 所有权转移在函数调用中的表现:Rust 内存安全的函数边界管理
  • WebRTC学习中各项概念笔记
  • 外包网站问些什么问题一个网站可以做几级链接
  • 网站开发商怎么关闭图片显示上海网站外包
  • K8s练习
  • 订阅飞书审批事件
  • 网站被降权怎么办河北政务服务网
  • ELEMENT_ERF 1150X_CASSETTE装配(ERF1150 OR EDT1150多国语言)
  • 网站备案撤销再备案英国做电商网站有哪些方面
  • 网站开发 税率wordpress 网站打不开
  • 永乐视频网页入口 - 免费高清影视在线观看网站
  • 砂轮姿态调整的几何艺术:摆角与抬角变换的数学原理
  • 下行数据处理模块(DownFrame_PKG) v2.0:架构优化与流水线创新
  • 从无状态到有状态,LLM的“记忆”进化之路
  • 公司网站开发 中山网站建设選宙斯王
  • 用php做电商网站展馆设计公司排名
  • Bootstrap 标签页