web-dev-qa-db-fra.com

Est-il possible de renommer une colonne jointe lors d'une jointure interne?

Disons que j'ai deux tables, owner et dog. Les deux ont la colonne name, mais je voudrais les joindre, donc il y a un problème puisque les deux tables ont la colonne name. Puis-je renommer (alias) la colonne name dans la table dog pendant la requête?

30
John
select d.Name as DogName, o.Name
from Dog d
inner join Owner o on d.OwnerID = o.OwnerID
48
RedFilter

Oui, vous pouvez, mais vous devez alors répertorier tous les champs au lieu d'utiliser select *:

    select o.*, d.*
      from owner o
inner join (select dog_id, name as dog_name, breed, age, owner_id from dog) d
    on o.owner_id = d.owner_id
10
mellamokb

Oui, vous pouvez renommer les colonnes dans la sortie d'une jointure, c'est-à-dire un alias. Cependant, le fait qu'ils soient identiques ne pose aucun problème; ils ont juste besoin d'être pleinement qualifiés.

0
MJB

Vous pouvez donner n'importe quel nom d'alias à la colonne mais il y a des règles comme le nom d'alias ne doit pas être la clé Word de SQL Server, il ne doit pas contenir d'espace, si vous voulez de l'espace alors il doit être en [] vous ne pouvez pas en utiliser symboles pour alias.

Ex: - Sélectionnez owner.Id As [Int], Owner ., dog. À partir du propriétaire, rejoignez Gog On Owner.Id = Dog.Id

0
Sanjay