彩票网站定制,做网站下一页,沈阳网络推广公司,作风建设主题活动 网站自连接是指在同一张表的连接查询【将同一张表看作两张表】。
1.案例
先看一下以前创建过的一张雇员表#xff1a; 可以看到smith的mgr字段是7902#xff0c;也就是ford的empno#xff0c;其中的含义就是#xff1a;员工smith的领导是ford。
现在我们有这样一个需求…自连接是指在同一张表的连接查询【将同一张表看作两张表】。
1.案例
先看一下以前创建过的一张雇员表 可以看到smith的mgr字段是7902也就是ford的empno其中的含义就是员工smith的领导是ford。
现在我们有这样一个需求显示员工名字和其领导的名字。
但是员工名字和其领导的员工号都在一张表里面该如何显示二者呢
于是自连接的概念就诞生了一张表当作两张表查。
SELECT * from emp,emp; 显然这样直接查会直接报错其提示我们用别名alias。
SELECT * from emp worker,emp boss;
像这种直接写在要查的表名之后的就是别名了。
但是这时依然会有问题。 我们得到了196条记录也就是14*14196条毋庸置疑通过别名的方式把一个表当两张表来查出现了笛卡尔集。
为了解决此问题我们需要进行过滤。
明确一下过滤的条件只有worker的mgr和boss的empno相等时才是有意义的记录。
SELECT worker.ename as 员工名子,boss.ename as 领导名字from emp worker,emp bossWHERE worker.mgr boss.empno; 可以看到我们成功的得到了13条记录少的一条记录就是king其是最大的boss其mgr是null。
2.总结
自连接的特点
把同一张表当做两张表使用需要给表取别名列名不明确可以指定列的别名 别名 as 列的别名