SQL Subquery | |
|
SQL >
Geavanceerde SQL >
Subquery
U kunt een SQL-instructie insluiten in een andere instructie. Wanneer dit gebeurt op de instructies WHERE of HAVING, is er sprake van een subquery construct. De syntaxis is als volgt: SELECT "kolom_naam1"
FROM "tabel_naam1" WHERE "kolom_naam2" [Vergelijkingsoperator] (SELECT "kolom_naam3" FROM "tabel_naam2" WHERE "Voorwaarde"); [Vergelijkingsoperator] kunnen gelijkheidsoperators zijn zoals =, >, <, >=, <=. Het kan ook een tekstoperator zijn zoals "LIKE". het gedeelte in rood wordt beschouwd als de "inner query", terwijl het gedeelte in groen wordt beschouwd als de "outer query". Neem hetzelfde voorbeeld dat werd gebruikt ter illustratie van SQL joins: Tabel Store_Information
Tabel Geography
waarbij u een subquery wenst te gebruiken om de omzet van alle winkels in de regio West te vinden. Dit kan a.d.h.v. de volgende SQL-instructie: SELECT SUM(Sales) FROM Store_Information
WHERE Store_name IN (SELECT store_name FROM Geography WHERE region_name = 'West'); Resultaat:
In dit voorbeeld wordt, in plaats van de twee tabellen rechtstreeks te verbinden om vervolgens de omzet voor winkels in de regio West op te tellen, eerst een subquery gebruikt om uit te zoeken welke winkels in de regio West aanwezig zijn, om dan het totaal van de winkels in kwestie op te tellen. In bovenstaand voorbeeld wordt eerst de inner query uitgevoerd en wordt het resultaat doorgegeven aan de outer query. Dit type subquery wordt een eenvoudige subquery genoemd. Als de inner query afhankelijk is van de outer query, is er sprake van een gecorreleerde subquery. Hierna wordt een voorbeeld van een gecorreleerde subquery gegeven: SELECT SUM(a1.Sales) FROM Store_Information a1
WHERE a1.Store_name IN (SELECT Store_Name FROM Geography a2 WHERE a2.Store_Name = a1.Store_Name); Bemerk de component WHERE in de inner query, waar de voorwaarde een tabel inhoudt van de outer query.
Copyright © 2024 1keydata.com Alle rechten voorbehouden |