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 经理 -- 张三 员工 市场部 王五 -- 马六 员工 销售部 李四 -- 钱七 员工 市场部 王五
时间: 2024-10-13 10:43:25