使用不明确的列名称查询错误

时间:2014-04-25 19:24:23

标签: sql-server

在Microsoft SQL Server 2008上执行以下SQL查询时:

SELECT 
   [ACCOUNT]
  ,[Mailto]
  ,[Site_addr_1]
  ,[Site_addr_2]
  ,[Site_addr_3]
  ,[State_Class]
  ,[Map_Facet]
  ,[Key_Map]
  ,[Neighborhood_Code]
  ,[Neighborhood_Group]
  ,[Econ_Area]
  ,[Yr_Impr]
  ,[Acreage]
  ,[Prior_Total_Market_Value]
  ,[Land_Value]
  ,[Improvement_Value]
  ,[Extra_features_Value]
  ,[Total_Appraised_Value]
  ,[Total_Building_Area]
  ,[Econ_Bld_Class]
  ,[LAND_USE_CODE]
FROM [Pdata].[dbo].[Real_acct] 
LEFT JOIN [Pdata].[dbo].[Land] 
ON (Real_acct.ACCOUNT = LAND.ACCOUNT)

我收到以下错误:

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

3 个答案:

答案 0 :(得分:4)

您正在进行连接,似乎两个表都有列ACCOUNT,并且sql server不知道您是否希望来自ACCOUNT或{{Real_acct的列Land 1}}。

试试这个:

SELECT 
   Real_acct.ACCOUNT -- or Land.ACCOUNT
  ,Mailto
  ,Site_addr_1
  ,Site_addr_2
  ,Site_addr_3
  ,State_Class
  ,Map_Facet
  ,Key_Map
  ,Neighborhood_Code
  ,Neighborhood_Group
  ,Econ_Area
  ,Yr_Impr
  ,Acreage
  ,Prior_Total_Market_Value
  ,Land_Value
  ,Improvement_Value
  ,Extra_features_Value
  ,Total_Appraised_Value
  ,Total_Building_Area
  ,Econ_Bld_Class
  ,LAND_USE_CODE
FROM [Pdata].[dbo].[Real_acct] 
LEFT JOIN [Pdata].[dbo].[Land] 
ON (Real_acct.ACCOUNT = LAND.ACCOUNT)

答案 1 :(得分:0)

第一列......服务器不知道您是否需要Real_acct.ACCOUNTLAND.ACCOUNT

答案 2 :(得分:0)

@majidarif是完全正确的。 原因是两个表都有一个名为“Account”的列。 您需要指定要从中返回值的表。 即使它们是相同的,你也需要具体。