【问题标题】:Merging two tables in SQL with ProgrammingError of Ambiguous column name将 SQL 中的两个表与列名不明确的 ProgrammingError 合并
【发布时间】:2023-03-10 13:02:01
【问题描述】:

我正在尝试合并两个表。我对此有点陌生,但我相信这些表是 dbo.Detail 和 Com.All_Calls_List

dbo.Detail 有我想要获取的三列:CallID 和 ResponsibleParty Com.All_Calls_List 有四列:CallID、CompanyName、Receiveddate、CustomerType

我想按 CallID 合并表,并将 ResponsibleParty 作为列添加到表中。

cnxn = pyodbc.connect("DSN=MYDSNCONNECTION")
cursor = cnxn.cursor()

cursor.execute("select CallID, CompanyName, recvd_dttm, CustType, ResponsibleParty from dbo.Detail, Com.All_Calls_List where Com.All_Calls_List.CallID = dbo.Detail.CallID")

这给出了[SQL Server Native Client 10.0][SQL Server]Ambiguous column name 'CallID'. 的编程错误我查了这个错误,我知道这是因为 CallID 是两个表中的重复列。我已经阅读了其他人是如何解决它的,但是他们的表格和目标不同,以至于我无法弄清楚如何在这里应用它。感谢您的任何建议。

【问题讨论】:

    标签: sql sql-server merge pyodbc ambiguous


    【解决方案1】:
    select Com.All_Calls_List.CallID, CompanyName, recvd_dttm, CustType, ResponsibleParty
    from dbo.Detail join Com.All_Calls_List 
    on Com.All_Calls_List.CallID = dbo.Detail.CallID
    

    如果两个表中都存在列,建议您使用表名。此外,当您加入 callID 上的表时,从任一表中选择都会得到相同的结果。

    【讨论】:

    • 有趣。这是有道理的,你的解决方案奏效了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多