LEFT JOIN MEDICALTESTS m ON p.PlayerId = m.PlayerId
WHERE m.PassedMedical = 1
Itu kontradiktif. Anda mengatakan itu adalah gabungan kiri, jadi catatan MEDICALTETS tidak perlu ada, tetapi kemudian mengatakan catatan itu sebenarnya harus ada dan memiliki 1 sebagai PassedMedical. Jadi gabungan kiri Anda sebenarnya menjadi gabungan dalam, dan juga, karena Anda harus memiliki baris MEDICALTETS, Anda juga harus memiliki baris PLAYERS, sehingga juga menjadi gabungan dalam.
Coba ini sebagai gantinya:
INNER JOIN MEDICALTESTS m ON p.PlayerId = m.PlayerId and m.PassedMedical = 1
Tidak yakin bagaimana SQL server menafsirkan FROM foo LEFT JOIN bar INNER JOIN baz...Anda ingin menafsirkannya sebagai FROM foo LEFT JOIN (bar INNER JOIN baz). Jika itu tidak berhasil, gunakan subselect sebagai gantinya; jangan gabung, cukup tambahkan:
WHERE p.PlayerId IS NULL or (select PassedMedical from MEDICALTESTS m where m.PlayerId=p.PlayerID) = 1
Semoga ini bisa membantu meskipun saya kurang familiar dengan SQL Server.