Alias un nom de colonne sur une jointure gauche
Disons que j'ai deux tables, et deux de leurs principaux identifiants utiliser le nom 'id'. Si je veux effectuer une jointure avec ces deux tables, comment aurais-je alias le id
de la table que je veux me joindre à l'ancienne table?
Par exemple:
SELECT * FROM `sites_indexed` LEFT JOIN `individual_data` ON `sites_indexed`.`id` = `individual_data`.`site_id` WHERE `url` LIKE :url
Maintenant, site_id est censé faire le lien avec sites_indexed.id
. La réelle id
qui représente la ligne de individual_data
a pourtant le même titre comme sites_indexed
.
Personnellement, j'aime utiliser le nom id
pour tout, comme il garde les choses cohérentes. Lorsque les scripts côté serveur, cependant, il peut rendre les choses encore plus confuses.
par exemple
$var = $result['id'];
Compte tenu de la requête précitée, ne serait-ce pas confondre l'interprète?
De toute façon, comment est-ce que c'est possible?
OriginalL'auteur zeboidlund | 2012-08-15
Vous devez vous connecter pour publier un commentaire.
Au lieu de sélectionner tous les champs avec un "SELECT *" vous devez explicitement le nom de chaque champ que vous avez besoin, de l'aliasing avec comme requis. Par exemple:
Et puis vous pouvez faire référence à un alias de noms dans le jeu de résultats.
OriginalL'auteur Paul McNett
Ce fil est vieux et je l'ai trouvé parce que j'ai eu le même problème. Maintenant j'ai une meilleure solution.
La réponse donnée par Paul McNett et antun forces vous à la liste de tous les domaines, mais dans certains cas c'est impossible (trop de champs à la liste), de sorte que vous pouvez garder l' * et alias uniquement les champs que vous souhaitez (généralement les domaines qui ont le même nom et va s'écraser les unes les autres).
Voici comment :
vous pouvez ajouter autant d'alias que vous le souhaitez en ajoutant des comas.
OriginalL'auteur john
Le problème est que vous utilisez le caractère générique*. Si vous l'avez explicitement la liste des noms de colonnes dans votre requête, vous pouvez leur donner des alias:
Vous pouvez y faire référence via l'alias:
$var = $result['sites_indexed_id'];
$var_b = $result['individual_data_id'];
OriginalL'auteur antun
À l'aide de cette expression, vous obtiendrez des résultats avec des colonnes id (à partir de la table sites_indexed) et id2 (alias de colonne id de table individual_data)
OriginalL'auteur Yuri Korolov