Pokud používáte *
zástupný znak, zjistíte, že sloupce se stejným názvem přepíší stejné klíče ve vašem asociativním poli.
Sloupcům z alespoň jedné z tabulek musíte přiřadit aliasy:
select t1.*, t2.col1 as t2col1, t2.col2 as t2col2, ...
from table as t1 LEFT JOIN table as t2 ON t1.id=t2.rank
Nebo můžete použít zástupný znak, ale načíst řádek jako řadové pole:
$row = mysql_fetch_array($result, MYSQL_NUM);
echo $row[4];
K vašemu komentáři:SQL má pouze *
zástupný znak znamenající "všechny sloupce z dané tabulky podle jejich přirozených jmen." Musíte alias sloupců explicitně, na základě sloupce po sloupci.
Výjimka:Pokud používáte SQLite, existuje pragma full_column_names
možnost, díky které bude sada výsledků vracet kvalifikované názvy sloupců, takže můžete použít *
ale klíče se vrátí s předponou s aliasy tabulky. Toto je SQLite specifické a nestandardní SQL.