微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 自我加入以获取员工经理的姓名

您好我有一个包含以下列的员工表
Emp_id,Emp_Name and Mgr_id.

我正在尝试创建一个将列出的视图

Emp_id,Emp_name,Mgr_id和Mgr_name(通过交叉加入Employee表).我尝试了外连接,内连接等,但我无法做到正确.

任何帮助都非常感谢.

CREATE TABLE [dbo].[tblEmployeeDetails](
[emp_id] [bigint] NOT NULL,[emp_name] [nvarchar](200) NULL,[emp_mgr_id] [bigint] NULL,CONSTRAINT [PK_tblEmployeeDetails] PRIMARY KEY CLUSTERED (
[emp_id] ASC )WITH (PAD_INDEX  = OFF,STATISTICS_norECOmpuTE  = OFF,IGnorE_DUP_KEY = OFF,ALLOW_ROW_LOCKS  = ON,ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY] ) ON [PRIMARY]

解决方法

CREATE VIEW AS
SELECT e1.emp_Id EmployeeId,e1.emp_name EmployeeName,e1.emp_mgr_id ManagerId,e2.emp_name AS ManagerName
FROM   tblEmployeeDetails e1
       JOIN tblEmployeeDetails e2
       ON e1.emp_mgr_id = e2.emp_id

编辑:
左连接将起作用.

CREATE VIEW AS 
SELECT e1.emp_Id EmployeeId,e2.emp_name AS ManagerName 
FROM   tblEmployeeDetails e1 
       LEFT JOIN tblEmployeeDetails e2 
       ON e1.emp_mgr_id = e2.emp_id

原文地址:https://www.jb51.cc/mssql/78034.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐