2015-02-24 195 views
0

我試圖加入兩個表,其中表1將表2中的值拉出並將它們存儲在單獨的列中。爲了描述的情況:SQL查詢多個列從同一個表中選擇

Table 1 
[ID][Name][TBL2_ID_Field1][TBL2_ID_Field2] 
1 XYZ 3    4 

Table 2 
[ID][Type][Description1][Description2] 
3 AA TEST   TEST 
4 BB TEST2   TEST2 

我需要顯示一些如表:

[ID][Name][TBL2_ID_Field1_DESC1][TBL2_ID_Field2_DESC1] 
1 XYZ TEST     TEST2 

查詢爲...

SELECT tbl1.id, tbl1.name, tbl2.description1 as "tbl2_id_field1_desc1", tbl2.description1 as "tbl2_id_field2_desc1" 
FROM Table1 tbl1, Table2 tbl2 
WHERE tbl1.tbl2_id_field1 = table2.id 
AND tbl1.tbl2_id_field2 = table2.id 

顯然是不工作,但我不知道還有什麼可以嘗試的。

任何幫助表示讚賞!請讓我知道,如果我沒有足夠的澄清。

+0

什麼錯誤信息你好嗎? – BigDevJames 2015-02-24 21:01:41

+0

我沒有得到任何結果,因爲我查詢使用相同的table2.id兩次爲兩個不同的字段(其中包含不同的值) – RizJa 2015-02-24 21:03:00

回答

2

加入表2的兩倍:

SELECT 
    tbl1.id, 
    tbl1.name, 
    tbl21.description1 as "tbl2_id_field1_desc1", 
    tbl22.description1 as "tbl2_id_field2_desc1" 
FROM Table1 tbl1 
JOIN Table2 tbl21 ON tbl21.id = tbl1.tbl2_id_field1 
JOIN Table2 tbl22 ON tbl22.id = tbl1.tbl2_id_field2; 
+1

我有點希望避免加入多次,因爲表2結構的方式是存儲值,否則我將不得不創建一些其他表... ...但這確實查詢我需要什麼,並以我需要的方式呈現,所以+1。 – RizJa 2015-02-24 21:13:16

+0

謝謝。至於加入兩次:沒有辦法解決這個問題。您想要將兩條記錄連接到每個table1記錄,所以它是兩個連接。 – 2015-02-24 21:15:32

+0

好,夠公平的。謝謝你的幫助! – RizJa 2015-02-24 21:28:18