2014-09-25 39 views
0

我有兩個表的基準的兩個表(名稱是虛擬對於本示例):加入其中第二表被用作用於所述第一表中的多個列

--------------------------------------- 
       MainTable 
--------------------------------------- 
Condition_1 | Condition_2 | Condition_3 
--------------------------------------- 
    J  |  H  |  N 
    R  |  T  |  
    I  |    |  
    W  |  T  |  
    R  |  M  |  Q 

...and so on... 


-------------------------------------- 
       Conditions 
-------------------------------------- 
Condition_Code | Condition_Description 
-------------------------------------- 
     A  | Description goes here 
     B  | Description goes here 
     C  | Description goes here 
     D  | Description goes here 
     E  | Description goes here 
     F  | Description goes here 
     G  | Description goes here 

...and so on... 

我想能夠查詢一個DataSet將具有從ConditionsCondition_Description作爲在MainTable表中具有代碼的每個條件的值。

所以,當我看一個特定行:

ds.Tables["Query"].Rows[i]["Condition_1"].ToString(); 

我要麼得到一個空字符串或條件的描述,如果它以前包含代碼。

因此,對於上例中的第一行,它將返回J的完整描述,而不是字符值。

我嘗試此查詢:

SELECT * FROM MainTable 
    LEFT JOIN Conditions AS C1 ON 
     MainTable.Condition_1 = C1.Condition_Code 
    LEFT JOIN Conditions AS C2 ON 
     MainTable.Condition_2 = C2.Condition_Code 
    LEFT JOIN Conditions AS C3 ON 
     MainTable.Condition_3 = C3.Condition_Code 

...但是,我得到一個missing operator in query expression錯誤。

P.S.由於我的數據庫經驗有限,所以很難爲這個創建標題,所以如果任何人有更好的標題,請隨時更改它。

回答

1

如果我理解你正確地比,也許這樣的事情會做的伎倆:

SELECT 
    (
    SELECT FIRST(Condition_Description) FROM Conditions C1 WHERE MT.Condition_1 = C1.Condition_Code 
) as C1_Description, 
    (
    SELECT FIRST(Condition_Description) FROM Conditions C2 WHERE MT.Condition_2 = C2.Condition_Code 
) as C2_Description, 
    (
    SELECT FIRST(Condition_Description) FROM Conditions C3 WHERE MT.Condition_3 = C3.Condition_Code 
) as C3_Description 
FROM MainTable as MT 

附:不確定訪問中第一個函數的語法是什麼。此外條件表設計不是很優雅:)

+0

去測試它,並找回你。不是我的數據庫,所以......是的。我只是堅持從中提取數據,以便我可以處理它。 – 2014-09-25 06:16:37

+0

經過測試,它的工作完美無瑕。非常感謝你的幫助。 – 2014-09-25 09:34:19

+0

不客氣。祝你好運 – Reniuz 2014-09-25 16:23:34

相關問題