【问题标题】:LEFT JOIN: The multi-part identifier "_" could not be boundLEFT JOIN:无法绑定多部分标识符“_”
【发布时间】:2018-01-17 16:46:36
【问题描述】:

对于下面的查询

SELECT TOP 1000 tb.firstName
    ,tb.secondName
    ,tb.startYear
    ,nb.primaryName
    ,tr.averageScore
    ,tr.numVotes
    ,g.subjectDescription
    ,tb.isActive
FROM team_basics tb
    ,ground g
    ,info_basics nb
INNER JOIN title_ground tg ON tb.ident = tg.ident
INNER JOIN name_title nt ON tb.ident = nt.ident
LEFT JOIN title_ratings tr ON tb.ident = tr.ident
WHERE nb.nconst = nt.nconst
    AND tg.groundId = g.groundId
ORDER BY tr.averageScore DESC
    ,tb.startYear DESC;

我收到以下错误:

The multi-part identifier "tb.ident" could not be bound.

之前这些是隐式连接,但试图解决我将它们更改为显式内部连接,但我仍然收到此错误。接下来我可以尝试什么?

【问题讨论】:

标签: sql tsql sql-server-2014


【解决方案1】:

永远不要FROM 子句中使用逗号。 始终使用正确、明确的JOIN 语法。

所以,将FROM 子句写为:

FROM team_basics tb INNER JOIN
     title_ground tg
     ON tb.ident = tg.ident INNER JOIN
     ground g
     ON tg.groundId = g.groundId INNER JOIN
     name_title nt
     ON tb.ident = nt.ident INNER JOIN
     info_basics nb
     ON nb.nconst = nt.nconst LEFT JOIN
     title_ratings tr
     ON tb.ident = tr.ident

您不再需要WHERE 子句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 2011-11-10
    • 2010-11-02
    • 2023-03-21
    相关资源
    最近更新 更多