SQL语句 自连表查询。inner join用法
use mydb1 go -- 表T_Employee2 -- Id Name Position Dept -- 1 张三 员工 市场部 -- 2 李四 经理 销售部 -- 3 王五 经理 市场部 -- 4 马六 员工 销售部 -- 5 钱七 员工 市场部 select * from T_Employee2 -- 需求:查询表中所有员工以及所在部门的经理姓名。(使用表自连接查询) -- 分析:要求返回结果 -- Name Position Dept 经理 -- 张三 员工 市场部 王五 -- 马六 员工 销售部 李四 -- 钱七 员工 市场部 王五 -- 1、查出 每个部门对应的经理姓名 select Dept,Name from T_Employee2 where Position=‘经理‘ -- 结果: -- Dept Name -- 销售部 李四 -- 市场部 王五 -- 2、查出 所有的员工 select * from T_Employee2 where Position=‘员工‘ -- 结果: -- Id Name Position Dept -- 1 张三 员工 市场部 -- 4 马六 员工 销售部 -- 5 钱七 员工 市场部 --3、上面2个表连接查询,把1个表当做2个表来查询。 select t1.Name,Position,t1.Dept,t2.Name ‘经理‘ from (select * from T_Employee2 where Position=‘员工‘) as t1 inner join (select Dept,Name from T_Employee2 where Position=‘经理‘)as t2 on t1.Dept = t2.Dept --4、简化后结果 select t1.Name,Position,t1.Dept,t2.Name ‘经理‘ from T_Employee2 as t1 inner join (select Dept,Name from T_Employee2 where Position=‘经理‘)as t2 on t1.Dept = t2.Dept where t1.Position=‘员工‘ -- 结果: -- Name Position Dept 经理 -- 张三 员工 市场部 王五 -- 马六 员工 销售部 李四 -- 钱七 员工 市场部 王五
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。