logo

SQL | Subquery's in From-clausule

SQL-subquery's zijn waardevolle functies waarmee we de ene query in een andere kunnen insluiten, wat meer belang toevoegt aan het op ingewikkelde wijze ophalen en manipuleren van gegevens. Het wordt gebruikt om tijdelijke tabellen of tussenresultaten op te zetten die vervolgens door de buitenste query kunnen worden gebruikt.

Subquery in de FROM-clausule

De FROM-clausule kan worden gebruikt om een ​​subquery-expressie in SQL op te geven. De door de subquery geproduceerde relatie wordt vervolgens gebruikt als een nieuwe relatie waarop de buitenste query wordt toegepast voor verdere bewerkingen. Subquery's in deFROMDe clausule wordt gebruikt wanneer we een tijdelijke gegevensset moeten maken die in geen enkele fysieke tabel bestaat. Dit kan uiterst nuttig zijn bij het werken met complexe datasets.

string ti int

De correlatievariabelen uit de tabellen waarnaar wordt verwezen in de FROM-clausule van de buitenste query kunnen niet rechtstreeks worden gebruikt binnen de subquery's in de FROM-clausule. Hieronder vindt u twee syntaxis voor het gebruik van Subquery in de FROM-clausule die in verschillende scenario's wordt gebruikt.



1. Eenvoudige subquery in deFROMClausule:

SELECTEER kolom1 kolom2

FROM (SELECT column_x AS C1 column_y FROM tabel WHERE voorwaarde) AS subquery_table

WHERE buitenste_voorwaarde;

2. Subquery in deFROMClausule metJOIN:

SELECTEER kolom1 kolom2

FROM (SELECTEER kolom_x AS C1 kolom_y FROM tabel WHERE PREDICATE_X) AS tabel2

Java-tekenreeks naar json

JOIN tabel1 OP tabel2.some_column = tabel1.some_column

WAAR PREDICAAT;

Parameters:

  • Subquery : De binnenste query tussen haakjes. Het haalt gegevens op die als tijdelijke tabel zullen fungeren.
  • Alias : De subquery moet een alias krijgen (subquery_table) waarnaar wordt verwezen in de buitenste query.
  • Buitenste zoekopdracht : De buitenste query kan dan werken met deze tijdelijke tabel die is gemaakt door de subquery door filters toe te passen of verdere bewerkingen uit te voeren.

Hoe subquery's in de FROM-clausule werken

  • Evaluatie van subquery's : De subquery in de from-clausule wordt eerst geëvalueerd en vervolgens worden de evaluatieresultaten opgeslagen in een nieuwe tijdelijke relatie. 
  • Buitenste zoekopdracht : Nadat de subquery een gegevensset heeft uitgevoerd en geretourneerd, wordt de buitenste query geëvalueerd door alleen die tupels uit de tijdelijke relatie te selecteren die voldoen aan het predikaat in de WHERE-clausule van de buitenste query.

Voorbeeld van het gebruik van subquery in de FROM-clausule

Laten we enkele voorbeelden uit de praktijk bespreken om te begrijpen hoe subquery's in de FROM-clausule in de praktijk werken. Hier hebben we twee tabellen Instructeur tabel met informatie over instructeurs, inclusief hun salaris en afdeling. Een andere wel Afdeling tabel met informatie over verschillende afdelingen, inclusief het budget van de afdeling.

Instructeur Tafel 

InstructeurIDNaamAfdelingSalaris
44547SmitComputerwetenschappen95000
44541RekeningElektrisch55000
47778AlleenGeesteswetenschappen44000
48147ErikMechanisch80000
411547BalsemInformatietechnologie65000
48898JenaCiviel50000

Afdeling Tafel

AfdelingsnaamBegroting
Computerwetenschappen100000
Elektrisch80000
Geesteswetenschappen50000
Mechanisch40000
Informatietechnologie90000
Civiel60000

Voorbeeld 1: Vind alle professoren wier salaris hoger is dan het gemiddelde budget van alle afdelingen. 

In dit voorbeeld gebruiken we een subquery in de FROM-clausule om het gemiddelde budget van alle afdelingen te berekenen en vervolgens de vergelijking te maken met de salarissen van instructeurs.

hritik roshan-leeftijd

Vraag:   

latex lettergroottes
SELECT I.InstructorID I.Name I.Department I.Salary  
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;

Uitvoer  

InstructeurIDNaamAfdelingSalaris
44547SmitComputerwetenschappen95000
48147ErikMechanisch80000

Uitleg:

  • Het gemiddelde budget van alle afdelingen uit de afdelingsrelatie bedraagt ​​70.000.
  • Erik en Smith zijn de enige instructeurs in de instructeursrelatie waarvan het salaris meer dan 70.000 bedraagt ​​en zijn daarom aanwezig in de outputrelatie. 

Waarom subquery's gebruiken in de FROM-clausule?

Er zijn verschillende voordelen verbonden aan het gebruik van subquery's in de FROM-clausule, zoals hieronder weergegeven:

  • Vereenvoudiging : Ze kunnen complexe zoekopdrachten vereenvoudigen door ze op te splitsen in kleinere, beter beheersbare delen. U hoeft niet expliciet tijdelijke tabellen in uw database te maken.
  • Verbeterde leesbaarheid : Het gebruik van subquery's in de FROM-clausule maakt de query beter leesbaar omdat deze > Flexibiliteit : Met subquery's kunt u bewerkingen uitvoeren die anders lastig zouden zijn, zoals aggregaties of filteren met betrekking tot andere datasets, zonder dat u tussenliggende tabellen hoeft te maken.

Conclusie

Met subquery's in de FROM-clausule kunnen we definiëren  tijdelijke resultaatsets die kunnen worden gebruikt door externe zoekopdrachten. Ze maken complexe SQL-bewerkingen eenvoudiger, verbeteren de leesbaarheid van zoekopdrachten en bieden flexibiliteit bij het filteren en aggregeren van gegevens. Weten hoe u subquery's binnen de FROM-clausule moet gebruiken, is een basisvaardigheid voor elke SQL-professional, vooral als u met complexe databases te maken heeft of wanneer u complexe gegevensanalyses moet uitvoeren.

Quiz maken