a razão pela qual não está funcionando é porque (na minha opinião ) o servidor está um pouco confuso sobre como lidará com os nomes das colunas corretamente. Para que funcione, adicione um alias em cada tabela que tenha o mesmo nome que você deseja unir, bem como nas colunas, por exemplo
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
supondo que você queira obter os nomes de cada coluna específica .