加入三个包含2个不同列的表

时间:2014-10-23 17:20:13

标签: sql-server join

事情就是这样:

我有三张桌子:

表1: COL1 COL2
表2: COL2 COL3
表3: COL3 COL4

我希望Table3Table.COL3 = TABLE2.COL3选择COL4,Table2.COL3Table2.COL2 = Table1.COL2

它喜欢两个连接表,但是当我使用以下查询时,它不起作用。

SELECT * FROM 
         table3
         INNER JOIN table2 ON table3.col3 
         =
         ( 
          SELECT  table2.col3
                  FROM table2
                  INNER JOIN table1 ON 
                  table1.col2 = table2.col2
         )

2 个答案:

答案 0 :(得分:0)

您正在从table1中选择加入其他人。所以table1进入了。

SELECT TABLE3.col4
FROM TABLE1
JOIN TABLE2 ON TABLE2.COL2 = TABLE1.COL2
JOIN TABLE3 ON TABLE3.COL3= TABLE2.COL3

答案 1 :(得分:0)

在join语句的第一个表中。您使用了一个列名,即table3.col4而不是表名,即table3。所以,它给出了错误。

您的正确查询如下

SELECT table3.col4 FROM table3
INNER JOIN table2 
ON table3.col3 =
 ( SELECT  table2.col3
 FROM table2
 INNER JOIN table1 ON 
 table1.col2 = table2.col2)