Selama Anda menggunakan *
wildcard, Anda akan menemukan kolom dengan nama yang sama akan menimpa kunci yang sama dalam array asosiatif Anda.
Anda harus memberikan alias kolom ke kolom dari setidaknya salah satu tabel:
select t1.*, t2.col1 as t2col1, t2.col2 as t2col2, ...
from table as t1 LEFT JOIN table as t2 ON t1.id=t2.rank
Atau Anda dapat menggunakan wildcard, tetapi ambil baris sebagai larik ordinal:
$row = mysql_fetch_array($result, MYSQL_NUM);
echo $row[4];
Kembali komentar Anda:SQL baru saja memiliki *
wildcard yang berarti "semua kolom dari tabel tertentu, dengan nama aslinya." Anda harus alias kolom secara eksplisit, berdasarkan kolom demi kolom.
Pengecualian:Jika Anda menggunakan SQLite, ada pragma full_column_names
opsi yang membuat kumpulan hasil mengembalikan nama kolom yang memenuhi syarat, sehingga Anda dapat menggunakan *
tetapi kunci kembali diawali dengan alias tabel. Ini adalah SQL khusus SQL dan tidak standar.