sql >> Databasteknik >  >> RDS >> Sqlserver

Sql LEFT OUTER JOIN med WHERE-sats

Flytta begränsningen till din on-klausul.

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

Vad som händer med dig är att den yttre sammanfogningen utförs först. Alla rader som kommer från den yttre kopplingen som inte har matchningar kommer att ha nollvärden i alla kolumner. Då tillämpas din where-sats, men eftersom 1 <> null kommer det inte att fungera som du vill.

EDIT:Ändrad på klausul baserat på Piyushs kommentar.



  1. Uppdaterar post UTAN att uppdatera tidsstämpel

  2. Det går inte att generera skillnad från liquibase gradle plugin

  3. hur man fixar odefinierad variabel:kollaboratörer i domPDF i Laravel

  4. Använda tupler i SQL IN-sats