内连接之自连接
自连接的最大特点是:一张表看作两张表,自己连接自己
(1)为了方便举例说明,我们可以在如下第024章节中的company数据库中创建一张新的数据表emp(员工表)
第024章节:https://blog.youkuaiyun.com/weixin_43184774/article/details/115487875
CREATE TABLE emp(
empno INT(8),
ename VARCHAR(255) NOT NULL,
mgr INT(8)
);
(2)往这个新创建的emp(员工表)中插入数据
INSERT INTO emp VALUES
(7369,'SMITH',7902),
(7499,'ALLEN',7698),
(7521,'WARD',7698),
(7566,'JONES',7839),
(7654,'MARTIN',7698),
(7698,'BLAKE',7839),
(7782,'CLAEK',7839),
(7788,'SCOTT',7566),
(7839,'KING',NULL),
(7844,'TURNER',7698),
(7876,'ADAMS',7788),
(7900,'JAMES',7698),
(7902,'FORD',7566),
(7934,'MILLER',7782);
例:在emp(员工表)中查询出每个员工的上级领导,要求显示员工名和对应的领导名
分析:我们可以将上面的emp表拆分为emp a员工表和emp b领导表这两张表
emp a员工表
emp b领导表
所以:我们只要知道员工表的领导编号 = 领导表的员工编号 这个关系就可以写出如下正确SQL语句
SELECT
a.ename AS '员工名', b.ename AS '领导名'
FROM
emp a
INNER JOIN
emp b
ON
a.mgr = b.empno;