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_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Tabel Geography
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan 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 >>



Copyright © 2014   1keydata.com   Alle rechten voorbehouden.



SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL Functies
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL ALIAS
SQL Join
SQL Outer Join
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM
SQL LENGTH
SQL REPLACE
SQL DATEADD
SQL DATEDIFF
SQL DATEPART
SQL GETDATE
SQL SYSDATE




Site-overzicht