sql >> Database teknologi >  >> RDS >> Oracle

Sådan bruges oracle outer join med et filter where-klausul

Du er meget bedre stillet ved at bruge ANSI-syntaksen

SELECT *
  FROM a
       LEFT OUTER JOIN b ON( a.id = b.id and
                             b.val = 'test' )

Du kan også gøre det samme ved at bruge Oracles syntaks, men det bliver en smule hinkey

SELECT *
  FROM a, 
       b
 WHERE a.id = b.id(+)
   AND b.val(+) = 'test'

Bemærk, at jeg i begge tilfælde ignorerer c tabel, da du ikke angiver en joinbetingelse. Og jeg går ud fra, at du ikke rigtig ønsker at forbinde A til B og derefter generere et kartesisk produkt med C.



  1. FEJL 1452 (23000):Kan ikke tilføje eller opdatere en underordnet række:en fremmednøgle-begrænsning mislykkes

  2. MySQL tidszoner

  3. Beregning af tidsforskel i SQL Server

  4. Hvad er det egentlig en BLOB i en DBMS sammenhæng