SQL Outer Join





SQL > SQL Opdrachten > Outer Join

Hiervoor zag u een linker-join, of inner join, waarbij u rijen selecteert die gemeenschappelijk zijn voor de tabellen die betrokken zijn bij de join. Wat gebeurt als u elementen wenst te selecteren in een tabel ongeacht het feit of ze aanwezig zijn in de tweede tabel? U moet in dit geval de opdracht SQL OUTER JOIN gebruiken.

De syntaxis voor het uitvoeren van een outer join in SQL is databaseafhankelijk. In Oracle bijvoorbeeld wordt een "(+)" geplaatst in de component WHERE aan de andere zijde van de tabel waarvan u alle rijen wilt omvatten.

Veronderstel dat u de volgende twee tabellen hebt,

Tabel Store_Information
 Store_Name  Sales  Txn_Date 
 Los Angeles 1500  05-Jan-1999 
 San Diego 250  07-Jan-1999 
 Los Angeles 300  08-Jan-1999 
 Boston 700  08-Jan-1999 

Tabel Geography
 Region_Name  Store_Name 
 East  Boston 
 East  New York 
 West  Los Angeles 
 West  San Diego 

en u wenst de omzet voor alle winkels. Met een gewone join verkrijgt u dit niet, want "New York" zal niet zijn inbegrepen vermits het niet voorkomt in de tabel Store_Information. Daarom moet u een outer join uitvoeren op de twee bovengenoemde tabellen:

SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name (+)
GROUP BY A1.Store_Name;

Bemerk dat in dit geval Oracle syntaxis wordt gebruikt voor de outer join.

Resultaat:

Store_Name  SALES
Boston  700
New York 
Los Angeles  1800
San Diego  250

Opmerking: De uitvoer is NULL wanneer er geen overeenkomst is in de tweede tabel. In dit geval komt 'New York' niet voor in de tabel Store_Information, dus is de overeenstemmende "SALES" kolom NULL.

SQL Concatenate >>

Deze pagina is voor het laatst bijgewerkt op 13-06-2022



Copyright © 2024   1keydata.com   Alle rechten voorbehouden