SQL Join





SQL > SQL Opdrachten > Join

Nu gaat u leren over joins. Het correct maken van joins in SQL vereist veel van de elementen die tot nog toe werden behandeld. 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 wilt de omzet per regio. U merkt dat de tabel Geography informatie omvat over regio's en winkels, en tabel Store_Information informatie over de omzet voor elke winkel. Om de omzetinfo per regio te krijgen, moet de informatie van beide tabellen worden gecombineerd. Wanneer u beide tabellen bekijkt ziet u dat ze verbonden zijn door het gemeenschappelijk veld "store-name". U bekijkt nu eerst de SQL-instructie en later krijgt u de uitleg over het gebruik van elk segment:

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

Resultaat:

REGION  SALES
East  700
West  2050

De eerste twee lijnen laten SQL twee velden kiezen, het eerste is het veld "region_name" in de tabel Geography (gealiassed als REGION), en het tweede is de som van het veld "Sales" in de tabel Store_Information (gealiassed als SALES). Merk op hoe de tabelaliassen hier worden gebruikt: Geography is gealiassed als A1, en Store_Information is gealiassed als A2. Zonder alias, zou de eerste lijn als volgt zijn

SELECT Geography.Region_Name REGION, SUM(Store_Information.Sales) SALES;

hetgeen heel wat omslachtiger is. Tabelaliassen maken dus de volledige SQL-instructie makkelijker te begrijpen, vooral wanneer er sprake is van meerdere tabellen.

Bekijk vervolgens lijn 3, de instructie WHERE. Hier wordt de voorwaarde van de join bepaald. De inhoud van "Store_Name" in de tabel Geography moet overeenstemmen met deze van de tabel Store_Information, u kunt dit bekomen door ze gelijk te stellen. De instructie WHERE is essentieel om te garanderen dat u de correcte uitvoer bekomt. Zonder de correcte WHERE instructie krijgt u een cartesiaanse join. Cartesiaanse joins zullen de query elke mogelijke combinatie van de twee (of welk aantal dan ook van tabellen in de instructie FROM) tabellen doen geven. In het huidige geval zou een cartesiaanse join 4 x 4 = 16 rijen geven.

SQL Outer Join >>

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



Copyright © 2024   1keydata.com   Alle rechten voorbehouden