自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但逻辑上是多张表。自连接通常用于表中的数据有层次结构的情况下,如区域表、菜单表、商品分类表等等。语法如下:
SELECT A.column, B.column
FROM table A, table B
WHERE A.column=B.column;
例如:
字段 | 说明 |
---|---|
id | 主键 |
pid | 父级ID |
name | 区域名称 |
id | pid | name |
---|---|---|
1 | 0 | 广西 |
2 | 1 | 北海 |
3 | 1 | 南宁 |
4 | 0 | 海南 |
5 | 4 | 海口 |
查询出每个城市对应的省份。
select A.id, A.name, B.name as province from area A, area B
where A.pid=B.id and A.pid<>0;