Oracle yttre kopplingar är ett sätt att visa data utan ytterligare filtrering av poster . Om två tabeller innehåller relaterade data , finns det en risk att någon av tabellerna inte kan ha några poster . Detta kan bara hända när det inte finns några begränsningar i tabellerna anger att register måste vara närvarande . Till exempel , om ett företag har ett antal kunder , är det möjligt att vid varje gång en kund kanske inte har beställt några varor . Den omvända situationen kan också vara sant , att produkterna inte kan ha kunder som tilldelats dem . Instruktioner
1
Välj två tabeller från Oracle-databas för vilka det kan finnas poster som finns i en, men inte nödvändigtvis i den andra . Tabellen med eventuellt saknade posterna kommer att kallas den yttre tabellen i det här fallet . Välj ordningsföljd för frågan , när det gäller att avgöra
2
som i tabellerna anges i frågan ( vänster eller höger ) kommer att utgöra yttre koppling . Ett exempel gör detta tydligare enligt följande :
väljer c.customerlastname ,
p.productid
kund c , productorders p
där c.customerid = p.customerid ;
Från denna fråga ett beslut måste fattas , behöver ni en lista över alla beställningar med ( eller utan ) kunder eller den omvända situationen , dvs en lista över kunder med eller utan lagda order ? Addera 3
Placera en ( + ) -indikator för att identifiera den tabell från vilken valfria rader returneras dvs ha register eller inte . I det här exemplet tabellen Produkter kan eller inte kan ha order mot dem , och därför kommer detta att vara en vänster yttre koppling :
väljer c.customerlastname ,
p.productid
kund c , productorders p
där c.customerid = p.customerid ( + ) ;
Om frågan behövs för att hitta produkter som inte kan ha kunder mot dem , den där klausulen skulle vara :
där c.customerid ( + ) = p.customerid ;
4
Kör frågan och returnerar resultatet . Exemplet vänster yttre koppling returnerar poster som liknar följande :
c.customerlastname 123423
Jones
Carr 89654
Bernardstein 66543
Observera att för denna vänster yttre koppling , är den enda kunden i denna lista utan en order " Jones . " Addera