il motivo per cui non funziona è perché (secondo me ) il server è un po' confuso su come gestirà correttamente i nomi delle colonne. Affinché funzioni, aggiungi un alias su ogni tabella che ha lo stesso nome a cui vuoi unire così come le colonne, ad es.
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
supponendo che tu voglia ottenere i nomi per ogni colonna specifica .