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
Tabel Geography
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:
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.
Copyright © 2024 1keydata.com Alle rechten voorbehouden |