由于列名不明确而导致SQL查询出错

问题描述 投票:0回答:1

我正在尝试创建一个SQL查询,但是出现此错误:

歧义列名'description'。

因为此列在两个表中都出现。

如果我从查询中删除描述,它将起作用。我试图重命名描述字段“ AS description_pointer”,但仍然发生错误。

SELECT TOP 1000 [activityid]
      ,[activitytypecodename]
      ,[subject]
      ,[regardingobjectid]
      ,[contactid] 
      ,[new_crmid]
      ,[description] AS description_pointer
FROM [crmtestext_MSCRM].[dbo].[FilteredActivityPointer] as I
   Left JOIN  [crmtestext_MSCRM].[dbo].[FilteredContact]
  ON I.[regardingobjectid] = [crmtestext_MSCRM].[dbo].[FilteredContact].[contactid]
  WHERE new_crmid not like '%Null%' AND activitytypecodename like '%E-mail%'
sql select ambiguous
1个回答
0
投票

两个在查询中都起作用的表都有一个名为description的列。您需要在表名(或表别名)前添加列名以消除歧义。

底线,在查询中使用多个表后,最好始终在表名或别名之前为列名加上前缀。这样可以避免您在这里看到的问题,并使那些不了解基础架构的可怜人更容易理解查询。

© www.soinside.com 2019 - 2024. All rights reserved.