2017-10-06 78 views
0

我可能这得太多,但我没有设法弄清楚或找到一个解决方案替换用户ID的多个实例,所以我希望在正确的方向指针。我尝试使用Select ColumnA AS Column B等,但它没有做我想要的。SQL服务器:使用用户名

我有2个表,下面场景实例

表1(汽车)

VehicleID (001) 
VehicleMake (Ford) 
VehicleModel (Falcon) 
VehicleExCleanEmpID (005) 
VehicleIntCleanEmpID (003) 

表2(雇员)

EmpID (005) 
EmpName (Dave) 

该场景被认为车辆在内部清洁或外部由Vehicles表中的相关ID所显示的员工池中的任何一个进行。

我想在查询VehicleID, InsideCleanName, ExternalCleanName显示而不是显示该员工的ID。

于是结束了与此类似

VehicleID InsideCleanName ExternalCleanName 
------------------------------------------------ 
001   Bob    Dave 
002   Sue    Dave 
003   John    Sid 

感谢您的任何提示结果或有助于

+0

你应该把你设法得到的查询直到现在,并解释你在哪个部分查询中挣扎。 –

回答

0

这看起来像一个非常简单的查询,有两个内部连接到Employee表 - 如下所示:

SELECT 
    v.VehicleId, 
    InsideCleanName = e1.EmpName, 
    ExternalCleanName = e2.EmpName 
FROM 
    dbo.Vehicle v 
INNER JOIN 
    dbo.Employee e1 ON v.VehicleIntCleanEmpId = e1.EmpID 
INNER JOIN 
    dbo.Employee e2 ON v.VehicleExCleanEmpId = e2.EmpID 

加入到Employee e1表给你,谁负责清洁内部员工,而参加第二次,以Employee e2为您提供了一个负责外部清洗。

+0

啊我想我现在明白了,你基本上在连接语句中为同一个表创建了2个不同的别名,对吗? – WeirdMunky

+0

@ WeirdMunky:正好。你的'Vehicle'表有两个**参考'Employee'表 - 所以你需要连接两次*到该表,并且别名'e1'和'e2'使这两个单独的连接保持分开 –

+0

完美执行并解释说,感谢帮助。这是我错过的别名的使用。 – WeirdMunky

0

加入两个表EMPID并选择要类似于下面的代码的列:

select column1, column2 from table1 inner join table2 on table1.EmpId = table2.EmpId