私は2つのテーブルを持っています:
TblAchievements >> [ID、AchName]
TblUsersAchievements >> [UserID、AchID]
結果は次のようにする必要があります(4つの実績があり、ユーザー1が1と2を達成したと仮定します。
ID AchName UserID AchID
1 first 1 1
2 second 1 2
3 third NULL NULL
4 fourth NULL NULL
私はこのようなことを試しました:
SELECT
tblacheivements.id,
tblacheivements.achname,
tbluserachievements.uid,
tbluserachievements.achid
FROM
tbluserachievements
RIGHT OUTER JOIN tblacheivements ON (tbluserachievements.achid = tblacheivements.id)
WHERE
tbluserachievements.uid = 1 OR
tbluserachievements.uid IS NULL
正しい結果が得られますが、ユーザーを変更すると結果が間違っています。