混合显式和隐式连接

时间:2017-09-14 14:51:09

标签: sql sql-server inner-join

我正在尝试执行下面的查询但是我收到了错误:无法绑定多部分标识符“T2.ID”。

            SELECT DISTINCT 
                T4.ID 
        FROM    dbo.TABELA1 T1, 
                dbo.TABELA2 T2, 
                dbo.TABELA3 T3, 
                dbo.TABELA4 T4 
                INNER JOIN dbo.TABELA5 T5 ON T4.ID = T5.ID 
                INNER JOIN dbo.TABELA6 T6 ON T5.ID = T6.ID 
                INNER JOIN dbo.TABELA7 T7 ON T6.ID = T7.ID
                INNER JOIN dbo.TABELA8 T8 ON T7.ID = T8.ID AND <b>T2.ID</b> = T8.ID
        WHERE   T1.ID = T2.OID

有人能指出我避免这种错误的正确方法吗?

3 个答案:

答案 0 :(得分:1)

如果我没记错的话,在隐式连接之前正在处理显式连接,因此 - t2.尚不可用。

解决方案:避免使用隐式连接语法,并使用正确的连接语法,就像查询的第二部分一样。

答案 1 :(得分:0)

最后一行:

  

WHERE T1.ID = T2.OID

T2.OID是否正确?它应该是T2.ID吗?

答案 2 :(得分:0)

您需要使用上面提到的正确连接语法。什么是主要/外键?