2015-07-10 60 views
-1

我有兩個表,我想從這兩個表中獲取數據。 TABLE_1從左邊的表中得到所有的行與where子句

ID Name 
1 Test11 
2 Test22 
3 Test33 
4 Test44 
5 Test55 
6 Test66 

TABLE_2

ID Class Price 
1  X1  10 
6  X1  20 
4  X1  30 
6  X3  20 
1  X2  10 
2  X2  10 

我想從左邊表,其中的類名

結果

if Class='X1' 

ID Name  Class Price 
1 Test11  X1  10 
2 Test22  X1 
3 Test33  X1 
4 Test44  X1  30 
5 Test55  X1 
6 Test66  X1  20 

我使用SQL Server的所有行2008

+0

您是否嘗試過自己什麼?任何努力?還不清楚你如何得到這個結果:'2 Test22 X1'。根據你的輸入數據,即使你的表有'ID <-> ID'關係是不可能的,因爲表2中的記錄'2 X2' –

+0

@AndyKorneyev抱歉編輯,請分享您的評論。 – user3441151

+0

一個簡單的'LEFT JOIN'就可以解決這個問題。 –

回答

0

您可以使用簡單的LEFT JOIN來實現此目的。您只需在您的SELECT聲明中指定X1作爲您的Class

SELECT 
    t1.*, 
    Class = 'X1', 
    t2.Price 
FROM Table_1 t1 
LEFT JOIN Table_2 t2 
    ON t2.ID = t1.ID 
    AND t2.Class = 'X1' 

結果

ID   Name  Class Price 
----------- ---------- ----- ----------- 
1   Test11  X1 10 
2   Test22  X1 NULL 
3   Test33  X1 NULL 
4   Test44  X1 30 
5   Test55  X1 NULL 
6   Test66  X1 20 
+0

'='附近的語法不正確 – user3441151

+0

您確定自己複製了嗎?它在我的機器上正常工作。 –

+0

是的,它的權利 – user3441151