Oracle ydre slutter er en måde at vise data uden yderligere filtrering af poster . Hvis to tabeller indeholder relaterede data , der er en sandsynlighed for, at en af tabellerne ikke kan have nogen poster . Dette kan kun ske, når der ikke er nogen begrænsninger på de tabeller, der præciserer , at registreringer skal være til stede. For eksempel, hvis en virksomhed har en række kunder , er det muligt , at der på noget tidspunkt en kunde kan ikke har bestilt nogen varer . Den omvendte situation kan også være sandt, idet produkter må ikke have kunder betroet dem. Instruktioner
1
Vælg to tabeller fra din Oracle database , hvor man kan have registre findes i én, men ikke nødvendigvis i den anden. Tabellen med eventuelt manglende registreringer vil blive kendt som den ydre tabel i dette tilfælde.
2
Vælg rækkefølgen for forespørgslen, i form af at afgøre, hvilken af de tabeller, der er angivet i forespørgslen (venstre eller højre) vil danne ydre join . Et eksempel gør denne klarere som følger : Hej
vælge c.customerlastname , Amerikas
p.productid
fra United
kunde c , productorders p
< p > hvor c.customerid = p.customerid ,
Fra denne forespørgsel en beslutning skal foretages , behøver du kræve en liste over alle produktgrupper ordrer med (eller uden) kunder eller den modsatte situation , dvs en liste over kunder med eller uden ordrer ?
fotos 3
Placer et (+ )-indikator til at identificere den tabel, som valgfrie rækker returneres dvs have optegnelser eller ej . I dette eksempel tabellen Produkter måske eller måske ikke har ordre imod dem , og derfor er dette vil være en venstre ydre join : Hej
vælge c.customerlastname , Amerikas
p.productid
< p > fra United
kunde c , productorders p
hvor c.customerid = p.customerid (+ ),
Hvis forespørgslen er nødvendig for at finde produkter, der måske ikke har kunderne mod dem , den hvor klausulen ville være : Hej
hvor c.customerid (+ ) = p.customerid ,
4
Kør forespørgslen og returnerer resultatet. Eksemplet venstre ydre join vil returnere poster der ligner følgende :
c.customerlastname 123.423
Jones
Carr 89654
Bernardstein 66.543
Bemærk , at for denne venstre ydre join, den eneste kunde i denne liste uden en ordre er " Jones . "