la raison pour laquelle cela ne fonctionne pas est parce que (à mon avis ) le serveur est un peu confus quant à la manière dont il gérera correctement les noms de colonnes. Pour que cela fonctionne, ajoutez un alias sur chaque table portant le même nom que vous souhaitez joindre ainsi que les colonnes, par exemple
SELECT achievements.*,
a.Name as TypeName,
b.Name AS BlockName,
c.Name as DataName,
d.Name AS ValueName
FROM achievements
INNER JOIN stats a ON achievements.type = a.type
INNER JOIN stats b ON achievements.block = b.block
INNER JOIN stats c ON achievements.data = c.data
INNER JOIN stats d ON achievements.value = d.value
WHERE player_id = $id
en supposant que vous souhaitiez obtenir les noms de chaque colonne spécifique .