la razón por la que no funciona es porque (en mi propia opinión ) el servidor está un poco confundido sobre cómo manejará los nombres de las columnas correctamente. Para que funcione, agregue un alias en cada tabla que tenga el mismo nombre que desea unir, así como las columnas, por ejemplo,
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
suponiendo que desea obtener los nombres de cada columna específica .