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

Sql LEFT OUTER JOIN dengan klausa WHERE

Pindahkan batasan ke klausa aktif Anda.

select *
from request r
left join requestStatus rs
on r.requestID = rs.requestID
--and status_id = 1
and status_id <> 2

Apa yang terjadi pada Anda adalah penggabungan luar dilakukan terlebih dahulu. Setiap baris yang berasal dari gabungan luar yang tidak memiliki kecocokan akan memiliki nol di semua kolom. Kemudian klausa where Anda diterapkan, tetapi karena 1 <> null, klausa tersebut tidak akan berfungsi seperti yang Anda inginkan.

EDIT:Diubah pada klausa berdasarkan komentar Piyush.



  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 Saya Membagi String yang Dibatasi di SQL Server Tanpa Membuat Fungsi?

  2. Gabungkan beberapa baris

  3. Mencari kolom dengan nilai yang dipisahkan koma

  4. Cara Mengubah Model Pemulihan Database SQL Server menggunakan T-SQL

  5. Dapatkan tanggal dari nomor minggu di T-SQL