sql >> Database >  >> RDS >> Sqlserver

Sql LEFT OUTER JOIN met WHERE-clausule

Verplaats de beperking naar uw on-clausule.

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

Wat er met je gebeurt, is dat eerst de outer join wordt uitgevoerd. Alle rijen die uit de outer join komen en geen overeenkomsten hebben, hebben nulls in alle kolommen. Dan wordt je waar-clausule toegepast, maar sinds 1 <> null gaat het niet werken zoals je zou willen.

EDIT:clausule gewijzigd op basis van de opmerking van Piyush.



  1. Is het mogelijk om een ​​tabel te beschrijven en eerst de NOTNULL-kolommen weer te geven?

  2. mysql selecteer tijdstempels tussen a en b retourneer alle of 0 tijdstempels

  3. Een SQL-bestand importeren met mysqldump op Windows via de opdrachtregel

  4. sqoop export van hdfs naar orakel Fout