2017-05-30 58 views
1

我試圖實現加入其中的SELECT語句多列,將在特定表引用相同的名稱,例如:做在SQL Server中加入

SELECT 
    sh.shift_number, 
    sh.workplace_num, 
    wp.workplace_name, 
    sh.workplace_num2, 
    sh.workplace_num3 
FROM shifts AS sh 
INNER JOIN workplace AS wk 
    ON wp.workplace_num = wk.workplace_num 

我的問題是我抽到第一工作場所,我怎麼得到workplace2或工作場所3

Shift_number | workplace_Num | workplace_name | workplace_Num2 | workplace_Num3 
4   | 2    | Teller   | 3    | 4 

正如你可以看到ØWk_placename(出納)相同的名稱顯示wk_placeNum至名(2)我想能夠顯示Wk_placeNum2和Wk_placeNum3的名稱,他們都將參加工作單位的職位名稱王牌桌!

我被限制上傳一張圖片,希望插圖畫一張圖片!

+3

請更新您的問題,我們展示了目前你所得到的輸出,連同你想要的輸出成爲。樣本數據也會有幫助。 –

+0

@TimBiegeleisen盡我所能,請檢查你是否可以協助 –

+0

我仍然不明白你在問什麼。 –

回答

2

你必須加入多次到工作場所表。請注意,因爲您沒有指定字段workplace_num2workplace_num3是否可以爲空,所以我假設這些都是如此使用LEFT JOIN。您應該使用INNER JOIN如果這些不可爲空:

SELECT 
    sh.shift_number, 
    sh.workplace_num, 
    wp.workplace_name, 
    sh.workplace_num2, 
    wp2.workplace_name as workplace_name2, 
    sh.workplace_num3 
    wp3.workplace_name as workplace_name3, 
FROM shifts AS sh 
INNER JOIN workplace AS wp 
    ON sh.workplace_num = wp.workplace_num 
LEFT JOIN workplace AS wp2 
    ON sh.workplace_num2 = wp2.workplace_num 
LEFT JOIN workplace AS wp3 
    ON sh.workplace_num3 = wp3.workplace_num 
1

試試這個:

SELECT 
    sh.shift_number, 
    sh.workplace_num, 
    wk.workplace_name, 
    wk2.workplace_name, 
    wk3.workplace_name 
FROM shifts AS sh 
INNER JOIN workplace AS wk 
    ON sh.workplace_num = wk.workplace_num 
INNER JOIN workplace AS wk2 
    ON sh.workplace_num2 = wk2.workplace_num 
INNER JOIN workplace AS wk3 
    ON sh.workplace_num3 = wk3.workplace_num