Siempre que esté utilizando el *
comodín, encontrará que las columnas del mismo nombre sobrescribirán las mismas claves en su matriz asociativa.
Debe proporcionar alias de columna a las columnas de al menos una de las tablas:
select t1.*, t2.col1 as t2col1, t2.col2 as t2col2, ...
from table as t1 LEFT JOIN table as t2 ON t1.id=t2.rank
O bien, puede usar el comodín, pero obtenga la fila como una matriz ordinal:
$row = mysql_fetch_array($result, MYSQL_NUM);
echo $row[4];
Re tu comentario:SQL tiene solo el *
comodín que significa "todas las columnas de una tabla dada, por sus nombres naturales". Debe alias de columnas explícitamente, columna por columna.
Excepción:si usa SQLite, hay un pragma full_column_names
opción que hace que el conjunto de resultados devuelva nombres de columna calificados, por lo que puede usar *
pero las claves vuelven con el prefijo de los alias de la tabla. Este es un SQL no estándar y específico de SQLite.