Inner join 2 tables avec les mêmes noms de colonnes
Je suis en train de travailler sur l'affichage des réalisations à partir de mon serveur minecraft sur mon site.
Mais je ne peux pas le faire fonctionner.
function achievements() {
global $id;
$sql="SELECT * FROM achievements
INNER JOIN stats ON achievements.type=stats.type
INNER JOIN stats ON achievements.block=stats.block
INNER JOIN stats ON achievements.data=stats.data
INNER JOIN stats ON achievements.value=stats.value
WHERE player_id = $id";
$result=mysql_query($sql) or die(mysql_error());
$rows=mysql_fetch_array($result);
}
Vais-je être en mesure d'utiliser $rows['achievements.type'];
et $rows['stats.type'];
pour obtenir la colonne "type" de la table sélectionnée, ou est-il un autre moyen de le faire?
La colonne et les noms de tables sont définies par le plugin que j'utilise, donc le nom ne peut pas être changé.
SELECT *, stats.type AS stats_type
alors accès $rows['stats_type'];
MAIS attention, comme $lignes['type'] sera à partir de la dernière table stats, achievements
OriginalL'auteur Lars Kaptein | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
la raison pour laquelle il n'est pas le travail, c'est parce que (dans ma propre opinion) le serveur est un peu confus sur où, comment il va gérer les noms de colonnes correctement. Afin que cela fonctionne, l'ajout d'un alias sur chaque table qui a le même nom que vous souhaitez vous joindre ainsi que les colonnes, par exemple,
en supposant que vous souhaitez obtenir les noms pour chaque colonnes.
OriginalL'auteur John Woo
Donner les colonnes que vous souhaitez tout en vous
SELECT
un alias comme par exemple:Maintenant vous pouvez obtenir les valeurs comme ceci:
$rows['Achieve-Type'];
OriginalL'auteur
Il est plus facile de faire un alias de la table des noms de...
Vous pourriez même alias les résultats si vous le souhaitez afin qu'il soit plus visible lorsque vous les sélectionnez, à partir de
$rows
OriginalL'auteur david99world