采访问题数据库查询问题

时间:2014-03-09 07:35:15

标签: sql

我有两张桌子:

table no 1 Employee
Emp_ID | EMP_Name
1             | Sumit
2             | HR1
3             | sunny
4             | Bhupin
5             | Abhishek
6             |Lallan
7             | Ashi
8             | HR2

表2 emp_hr:

Emp_ID | EMP_HR_ID
1             | 8
2             | NULL
3             | 2
5             | 4
6             | 4
7             | 2
8             | NULL

我想通过sql server查询输出,它根据表2中存储在表1中的id存储自动指向名称:

Emp_Name       | HR
Sumit          | HR2
HR1            | Null
Sunny          | HR1
Abhishek       | Bhupin
Lallan         | Bhupin
Ashi           | HR1
HR2            | Null

任何人都可以解决此问题。

3 个答案:

答案 0 :(得分:1)

选择A.EMP_NAME作为名称,C.EMP_NAME作为HR 来自EMP A. JOIN EMP_HR B ON A.EMP_ID = B.EMP_ID LEEM JOIN EMP C on B.EMP_HR_ID = C.EMP_ID

http://sqlfiddle.com/#!3/cbf31/23

答案 1 :(得分:0)

我不确定是否会提出您的问题,但我想这个问题可以帮助您:

SELECT T2.EMP_Name Emp_Name,T3.EMP_Name HR FROM 
TABLE2 T1 LEFT OUTER JOIN TABLE1 T2 
ON T1.Emp_ID = T2.Emp_ID LEFT OUTER JOIN TABLE1 T3 
ON T1.EMP_HR_ID= T3.Emp_ID ;

答案 2 :(得分:0)

这是一个简单的连接,唯一有点棘手的部分是,您需要两次加入同一个表,一次获取员工姓名,一次获取其经理的姓名。

SELECT t1a.Emp_Name, t1b.Emp_Name AS HR
FROM Table2 t2
       JOIN Table1 t1a ON t1a.Emp_ID = t2.Emp_ID
  LEFT JOIN Table1 t1b ON t1b.Emp_ID = t2.EMP_HR_ID