【问题标题】:SQL server ERROR Ambiguous column nameSQL server ERROR 列名不明确
【发布时间】:2016-12-30 14:26:47
【问题描述】:

无法理解此 SQL 查询中有什么问题:

USE [My_db]
GO

SELECT ItemId
      ,Subject
      ,CreatedOn
  FROM ItemBase AS e
      INNER JOIN ItemExtensionBase AS p
      ON e.ItemId = p.ItemId
GO

错误:

 Msg 209, Level 16, State 1, Line 4
 Ambiguous column name 'ItemId'.

ItemId 列存在于两个表中。

【问题讨论】:

  • 错误消息很清楚 - 但它与您的 SQL 不匹配 - 您说它们都是表 - 但这意味着您没有将 ItemID 映射到 LeadID - 那么 LeadID 来自哪里?除非您实际使用 LeadID,否则您不会收到该消息。
  • @dbmitch ,错别字抱歉;是的,它应该是“ItemId”。我将编辑问题。

标签: sql-server sql-server-2008 inner-join


【解决方案1】:
USE [My_db]
GO

SELECT e.ItemId
      ,Subject
      ,CreatedOn
  FROM ItemBase AS e
      INNER JOIN ItemExtensionBase AS p
      ON e.ItemId = p.ItemId
GO

您需要告诉它从哪个表中获取 itemid 字段

【讨论】:

    【解决方案2】:

    使用e.ItemIdp.ItemId

    USE [My_db]
    GO
    
    SELECT e.ItemId
          ,Subject
          ,CreatedOn
      FROM ItemBase AS e
          INNER JOIN ItemExtensionBase AS p
          ON e.ItemId = p.ItemId
    GO
    

    【讨论】:

      猜你喜欢
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多