LEFT JOIN MEDICALTESTS m ON p.PlayerId = m.PlayerId
WHERE m.PassedMedical = 1
Това е противоречиво. Вие казвате, че това е ляво съединение, така че записът MEDICALTESTS не трябва да съществува, но след това казвате, че записът трябва в действителност да съществува и да има 1 като PassedMedical. Така че вашето ляво съединение всъщност става вътрешно съединение и по същия начин, тъй като трябва да имате ред MEDICALTESTS, трябва да имате и ред PLAYERS, така че това също става вътрешно съединение.
Опитайте това вместо това:
INNER JOIN MEDICALTESTS m ON p.PlayerId = m.PlayerId and m.PassedMedical = 1
Не съм сигурен как SQL сървърът интерпретира FROM foo LEFT JOIN bar INNER JOIN baz... искате да интерпретира това като FROM foo LEFT JOIN (bar INNER JOIN baz). Ако това не работи, използвайте подизбор вместо това; не се присъединявайте, просто добавете:
WHERE p.PlayerId IS NULL or (select PassedMedical from MEDICALTESTS m where m.PlayerId=p.PlayerID) = 1
Надявам се това да помогне въпреки липсата ми на познания за SQL Server.