2017-10-06 57 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