2009-11-03 6 views
1

J'ai deux ou plusieurs tables qui contiennent des valeurs sous le même nom de colonne. Maintenant, lorsque je rejoins ces deux tables, les noms des colonnes restent les mêmes. Lors de la récupération de ces valeurs dans PHP ($ row ['nom']), je rencontre des problèmes car la colonne 'nom' est utilisée deux fois.Récupération de valeurs MYSQL Join à partir de PHP

Y a-t-il des moyens possibles de séparer ces deux colonnes dans la requête?

SELECT * 
    FROM stories s 
    JOIN authors a ON a.id = s.authorid 

Tableau histoires id, nom, contenu, la date

Tableau auteurs id , nom, date

Quand je rejoins ces deux i obtenir une table avec des colonnes 'nom' similaires. Y a-t-il un moyen de séparer les deux tables afin que la table auteur ait un préfixe devant? Par exemple. authors_name/authors_ *

Répondre

5

Oui, changer votre SQL ainsi:

SELECT 
    s.Id as StoryId, 
    s.Name as StoryName, 
    a.Id as AuthorId, 
    a.Name as AthorName, 
FROM stories s 
JOIN authors a ON a.id = s.authorid 

Puis en php, utilisez StoryId, StoryName, AuthorID et AthorName au lieu de ID ou le nom.

J'espère que cela vous aide.

+0

Merci, cela devrait faire l'affaire, mais j'espérais pouvoir ajouter un préfixe qui ajouterait automatiquement quelque chose comme authors_ * – SyntaxError

+0

Malheureusement, il semble qu'il n'y ait pas de préfixe automatique. Si cette réponse est correcte, n'oubliez pas de 'l'accepter': p –

1

Oui il y a!

SELECT *, stories.name AS s_name, authors.name AS a_name 
FROM stories s 
JOIN authors a ON a.id = s.authorid 

Et là vous l'avez. Tous les champs plus deux supplémentaires! ;)

Espérons que cela aide.

+0

Merci! J'apprécie toutes vos réponses. Je voudrais ajouter individuellement une note de remerciement à tous puisque je suis un débutant à SO. – SyntaxError

0

Désolé, vous ne pouvez pas vraiment ne préfixer sur un terrain, mais si vous pouvez appeler 2 requêtes, il suffit d'utiliser

SELECT s.* 
FROM stories s 
JOIN authors a ON a.id = s.authorid 

Le jeu de résultats ne contiendra que des histoires champs et vous pouvez utiliser les champs que vous normalement avec php. Ensuite, refaites la même chose pour les auteurs.

Questions connexes