LEFT JOIN MEDICALTESTS m ON p.PlayerId = m.PlayerId WHERE m.PassedMedical = 1
プレ>それは矛盾しています。あなたはそれが左結合であると言っているので、MEDICALTESTS レコードが存在する必要はありませんが、レコードが実際に存在し、PassedMedical として 1 を持っている必要があると言っています。したがって、左結合は実際には内部結合になり、同様に、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 に詳しくありませんが、これがお役に立てば幸いです。