簡體   English   中英

我不明白為什么我在編譯時收到錯誤消息 Ambiguous column name 'FirstName'

[英]I do not understand why I am getting the error message Ambiguous column name 'FirstName' when compiling

SELECT FirstName
FROM Adjuncts 
INNER JOIN Faculty ON Adjuncts.FirstName = Faculty.FirstName  

這是我的 Microsoft SQL Server 2012 代碼。 我正在嘗試將兩個表連接在一起( AdjunctsFaculty )並共享它們的FirstNameLastName列。 我試着只做一個( FirstName )來看看我是否可以讓它工作,但不能。 我收到以下錯誤消息:

Msg 209, Level 16, State 1, Line 1
不明確的列名“名字”

有人能告訴我如何正確地將兩個表連接在一起嗎? 以及如何僅顯示在每個表中定義的 'FirstName' 和 'LastName' 列,而不與 'FirstName' 和 'LastName' 列重疊並且有兩次。

兩個表中都有FirstName ——正如ON子句清楚地顯示的那樣。

我建議您為限定的列名使用表別名:

SELECT a.FirstName
FROM Adjuncts a INNER JOIN
     Faculty f
     ON a.FirstName = f.FirstName;

查詢中的兩個表( AdjunctsFaculty )都有一個FirstName列,因此您必須完全限定它。 例如:

SELECT     Adjuncts.FirstName
-- Here ---^
FROM       Adjuncts
INNER JOIN Faculty ON Adjuncts.FirstName = Faculty.FirstName  

嘗試使用以下查詢,這可能有匹配項,因此將顯示數據。 當您在JOINON子句中不使用鍵列時,很難進行匹配

SELECT a.firstname
  FROM adjuncts a
  JOIN faculty f
    ON UPPER(a.firstname) = UPPER(f.firstname)

此外,如果您不希望 firstname 有兩個不同的列,請不要在SELECT子句中添加 f.firstname。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM