2017-10-01 3 views
-2
SELECT FirstName 
FROM Adjuncts 
INNER JOIN Faculty ON Adjuncts.FirstName = Faculty.FirstName 

Ceci est mon code Microsoft SQL Server 2012. J'essaye de joindre deux tables ensemble (Adjuncts et Faculty) et partage leurs colonnes FirstName, et LastName. J'ai essayé juste de faire un (FirstName) pour voir si je pourrais le faire fonctionner, et ne pourrais pas. Je recevais le message d'erreur suivant:Je ne comprends pas pourquoi j'obtiens le message d'erreur Nom de colonne ambigu 'Prénom' lors de la compilation

Msg 209, niveau 16, état 1, ligne 1
nom de la colonne Ambigu 'FirstName'

Est-ce quelqu'un peut me dire comment joindre correctement la deux tables ensemble? Et comment afficher uniquement les colonnes 'LastName' 'FirstName' qui sont définies dans chacune des tables WITHOUT chevauchant les colonnes 'FirstName' & 'LastName' et les avoir deux fois.

+0

Comme pour toute question ultérieure, vous devriez poser une * autre * question et fournir des exemples de données et les résultats souhaités. –

+0

Est-ce que ces tables rejoignent vraiment les valeurs du prénom et du nom de famille? Il n'y a pas de colonne ID pour les joindre ensemble? – bbrumm

+0

Vous avez dit 'SELECT FirstName ...' avez-vous essayé 'SELECT Adjuncts.FirstName' à la place? –

Répondre

3

Les deux tables ont FirstName en eux - comme le montre clairement la clause ON.

Je vous recommande d'utiliser les alias de table pour vos noms de colonnes qualifiés:

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

Les deux tables de votre requête (Adjuncts et Faculty) ont une colonne FirstName, vous devez donc la qualifier complètement. .: par exemple

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

+0

J'ai changé mon code pour le vôtre et maintenant j'obtiens des noms de colonnes en double et aucune donnée n'est présentée sous mes colonnes. SELECT Faculty.FirstName, Adjuncts.FirstName FROM faculty INNER JOIN Compléments \t ON Faculty.FirstName = Adjuncts.FirstName – Kegune

+0

Essayez d'ajouter Adjuncts.LastName en tant que colonne dans la clause SELECT pour voir cette colonne. – bbrumm

+0

Je pense que vous avez mal compris, la colonne FirstName s'affiche (deux fois dans deux colonnes différentes) et en plus, elle ne présente aucun résultat dans les lignes. – Kegune

0

Essayez d'utiliser la requête suivante, cela pourrait avoir un match donc il y aura des données présentées. Il est vraiment difficile d'avoir un match lorsque vous ne l'utilisez des colonnes clés dans la clause ON de JOIN

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

En outre, ne pas ajouter f.firstname dans la clause SELECT si vous ne voulez pas avoir deux colonnes différentes pour le prénom.