sql >> Database teknologi >  >> RDS >> Sqlserver

Sql LEFT OUTER JOIN med WHERE-sætning

Flyt begrænsningen til din on-klausul.

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

Det, der sker med dig, er, at den ydre sammenføjning udføres først. Alle rækker, der kommer fra den ydre joinforbindelse, der ikke har match, vil have nuller i alle kolonnerne. Derefter anvendes din where-klausul, men siden 1 <> null, vil det ikke fungere, som du vil have det til.

EDIT:Ændret på klausul baseret på Piyushs kommentar.



  1. udfyld en valgboks med php mysql

  2. Kom godt i gang med Postgres 13 på Ubuntu 20.04

  3. Oracle-datokorruption under opdatering

  4. Hvordan får man data fra databasen til at se side i laravel?