MySQL: Left join et de la colonne avec le même nom dans différents tableaux?
SELECT * FROM `product` left join category on product.category_id = category.id
Cette requête fonctionne très bien. Mais le problème est, à la fois le produit de la table et de la table des catégories ont des champs nommé "nom" et "id". Alors quand j'ai récupérer le résultat de cette requête, il me donne un seul nom et un id, mais je veux à la fois de l'id et le nom du.
Comment puis-je le faire sans avoir à renommer les champs?
Est-il possible de revenir avec des noms personnalisés tels que produit_nom et category_name?
OriginalL'auteur user1091856 | 2012-05-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter des alias pour les champs:
OriginalL'auteur Pastor Bones
utiliser le "COMME" mot-clé comme
OriginalL'auteur jimpic
Utiliser des alias avec le
AS
mot-clé:OriginalL'auteur adrien
Cela ne peut pas fonctionner en PHP. Lorsque j'extrais les lignes (mysql_fetch_assoc), il s'agit seulement UN nom et UN id
Désolé, oui, vous aurez besoin d'accéder via fetch_row si vous laissez la * valeur. Sinon, ce serait en utilisant des alias pour chaque champ en double comme indiqué dans d'autres posts.
Vous pouvez également utiliser mysql_fetch_array(), mais dans ce cas, vous avez besoin d'accéder aux données avec les indices de la place des associations (ou clés).
OriginalL'auteur gunnx
essayez ceci:
OriginalL'auteur John Woo
J'ai eu un problème similaire travailler avec MySQL dans un Node.js projet.
J'ai trouvé que si vous voulez continuer à utiliser
select *
, au lieu d'énumérer toutes les colonnes et à l'aide d'un alias, les ouvrages suivants:En d'autres termes, il suffit de créer des alias pour les colonnes jointes qui ont des noms en conflit. Vous n'avez pas besoin d'alias sur d'autres colonnes ou sur les noms des tables.
OriginalL'auteur JSideris