sql >> Base de Datos >  >> RDS >> Sqlserver

Sql LEFT OUTER JOIN con cláusula WHERE

Mueva la restricción a su cláusula on.

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

Lo que te sucede es que primero se realiza la unión externa. Cualquier fila proveniente de la combinación externa que no tenga coincidencias tendrá valores nulos en todas las columnas. Luego se aplica su cláusula where, pero como 1 <> nulo, no funcionará como usted desea.

EDITAR:Se modificó la cláusula on según el comentario de Piyush.