MySQL 高级表连接 MySQL 高级表连接是指在 MySQL 中连接两个或多个表的数据,以便从多个表中检索数据。高级表连接包括内连接、外连接、带聚合函数连接和表连接+子查询等。 1. 内连接 内连接(Inner Join)是指从两个表中选择相互匹配的数据。内连接的语法为: ``` SELECT 字段, 字段 FROM A表 a INNER JOIN B表 b ON a.字段 = b.字段 WHERE 筛选条件; ``` 其中,INNER JOIN 可以省略,效果与 SQL92 中的等值连接相同。 例如,查询员工名和部门名: ``` SELECT last_name, department_name FROM employees e INNER JOIN departments d ON e.department_id = d.department_id WHERE e.last_name LIKE '%A%'; ``` 2. 带聚合函数连接 带聚合函数连接是指在连接表时使用聚合函数,如 SUM、AVG、MAX 等。语法为: ``` SELECT 字段,聚合函数(字段) FROM A表 a INNER JOIN B表 b ON a.字段 = b.字段 GROUP BY 字段; ``` 例如,查询部门的员工人数: ``` SELECT department_name, COUNT(*) FROM employees e INNER JOIN departments d ON e.department_id = d.department_id GROUP BY department_name; ``` 3. 外连接 外连接(Outer Join)是指从两个表中选择一个表中的所有数据,并从另一个表中选择匹配的数据。如果没有匹配的数据,则使用 NULL 值填充。外连接包括左外连接、右外连接和全外连接。 左外连接(LEFT OUTER JOIN)语法为: ``` SELECT 字段, 字段 FROM A表 a LEFT OUTER JOIN B表 b ON a.字段 = b.字段 WHERE 筛选条件; ``` 右外连接(RIGHT OUTER JOIN)语法为: ``` SELECT 字段, 字段 FROM A表 a RIGHT OUTER JOIN B表 b ON a.字段 = b.字段 WHERE 筛选条件; ``` 全外连接(FULL OUTER JOIN)语法为: ``` SELECT 字段, 字段 FROM A表 a FULL OUTER JOIN B表 b ON a.字段 = b.字段 WHERE 筛选条件; ``` 4. 表连接+子查询 表连接+子查询是指在连接表时使用子查询来筛选数据。语法为: ``` SELECT 字段, 字段 FROM A表 a INNER JOIN (SELECT 字段 FROM B表 WHERE 筛选条件) b ON a.字段 = b.字段; ``` 例如,查询员工名和部门名,并且部门名称包含“Sales”: ``` SELECT last_name, department_name FROM employees e INNER JOIN (SELECT department_name FROM departments WHERE department_name LIKE '%Sales%') d ON e.department_id = d.department_id; ``` MySQL 高级表连接是指在 MySQL 中连接两个或多个表的数据,以便从多个表中检索数据。它包括内连接、外连接、带聚合函数连接和表连接+子查询等。
剩余30页未读,继续阅读
- 粉丝: 0
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助