2015-02-24 87 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

相关问题