それが機能しない理由は(私自身の意見では )サーバーは、列名を適切に処理する方法について少し混乱しています。それが機能するように、結合したい同じ名前を持つすべてのテーブルと列にエイリアスを追加します。例:
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
特定の列ごとに名前を取得する場合 。