Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara GABUNG tabel ketiga dalam pernyataan SQL saya yang mengembalikan COUNT tanpa kehilangan 0 item hitungan?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengubah bahasa default untuk SQL Server?

  2. Ubah kolom nomor

  3. SQL Server - gabungkan baris ke dalam daftar yang dipisahkan koma

  4. Pemeran T-SQL versus Konversi

  5. Cara Menambahkan Batasan DEFAULT ke Kolom yang Ada di SQL Server