首页 > 数据库技术 > 详细

SQL语句 自连表查询。inner join用法

时间:2014-10-17 21:37:55      阅读:710      评论:0      收藏:0      [点我收藏+]
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  经理
-- 张三  员工    市场部  王五
-- 马六  员工    销售部  李四
-- 钱七  员工    市场部  王五

 

SQL语句 自连表查询。inner join用法

原文:http://www.cnblogs.com/han1982/p/4032043.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!