自连接不是一种新的连接形式,而只是一个表“自己跟自己连接”,这怎么做到呢?
语法形式:
```
from 表1 as a [连接形式] join 表1 as b on a.xx字段1=b.xx字段名
```
说明:
1, 自连接其实还是两个表连接,只是将一个表用不同的别名,当做两个表。
2, 自连接适用于一个表中的某个字段的值“来源于”当前表的另一个字段的情况。
示例:
地区表如下所示:
![](https://img.kancloud.cn/26/42/26426f32477fe57f665eda06de20245b_331x403.png)
要求查询每个城市及其所在省份,结果类似如下所示:
**城市** **省份**
石家庄 河北省
保定 河北省
思路:
![](https://img.kancloud.cn/6a/ad/6aad0fcc55b9bceab0c3ede9fc904f89_319x257.jpg)![](https://img.kancloud.cn/ff/53/ff53495ab8509e061848465ab82f77f2_337x254.jpg)
```
select a.area_name, b.area_name from area as a join area as b on a.parent_id = b.id;
```
![](https://img.kancloud.cn/b4/24/b424813459910a9b01d9e83c5696dbff_796x199.jpg)
需求稍作调整:
找出所有省份及其下属城市。
![](https://img.kancloud.cn/2b/34/2b34c3e508687d61aa0ef470001e82f8_785x130.jpg)
- 1、数据库介绍
- 1.1.主流数据库
- 1.2.MySQL数据库概览
- 1.3.关系数据库
- 2、访问mysql数据库服务器
- 2.1.开启/关闭数据库服务
- 2.2.客户端连接数据库服务器
- 3、数据库操作
- 3.1.查看所有数据库
- 3.2.创建新数据库
- 3.3.查看数据库创建信息
- 3.4.删除现有数据库
- 3.5.修改现有数据库
- 3.6.选择(使用)某个数据库
- 4、数据表操作
- 4.1.创建数据表初步
- 4.2.查看所有数据表
- 4.3.查看数据表结构
- 4.4.查看数据表的创建语句
- 4.5.删除数据表
- 4.6.修改数据表
- 5、数据操作初步
- 5.1.插入数据
- 5.2.查询数据
- 5.3.删除数据
- 5.4.修改数据
- 6、MySQL数据类型
- 6.1.数据类型(列类型)总览
- 6.2.整型
- 6.3.小数型
- 6.4.日期时间型
- 6.5.字符串型
- 7、列属性
- 8、实体与实体的关系
- 8.1.基本概念
- 8.2.一对一关系
- 8.3.一对多关系
- 8.4.多对多关系
- 9、高级查询
- 9.1.高级查询语法概述
- 9.2.查询结果数据及select选项
- 9.3.where子句
- 9.4.mysql运算符
- 9.5.group by子句
- 9.6.having子句
- 9.7.order by子句
- 9.8.limit 子句
- 10、高级插入
- 10.1.同时插入多行记录
- 10.2.插入查询的结果数据
- 10.3.set语法插入数据
- 10.4.蠕虫复制
- 10.5.插入时主键冲突的解决办法
- 11、高级删除
- 11.1.按指定顺序删除指定数量的数据
- 11.2.truncate清空
- 12、高级更新
- 13、联合(union)查询
- 13.1.联合查询概念
- 13.2.联合查询语法
- 14、连接(join)查询
- 14.1.连接查询概述
- 14.2.交叉连接(cross join)
- 14.3.内连接(inner join)
- 14.4.外连接
- 14.5.自连接
- 15、子查询(subquery)
- 15.1.子查询的概念
- 15.2.标量子查询
- 15.3.列子查询
- 15.4.行子查询
- 15.5.表子查询
- 15.6.有关子查询的特定关键字
- 15.7.exists子查询
- 16、数据管理
- 16.1.数据备份
- 16.2.数据还原(数据恢复)
- 17、用户管理:
- 17.1.查看用户
- 17.2.创建用户
- 17.3.删除用户
- 17.4.修改/设置用户密码
- 17.5.授予用户权限
- 17.6.取消用户授权