logo

SQL | Underfrågor i From-klausul

SQL-underfrågor är värdefulla funktioner som gör det möjligt för oss att bädda in en fråga i en annan, vilket lägger till större vikt vid att hämta och manipulera data på ett komplicerat sätt. Den används för att konfigurera tillfälliga tabeller eller mellanliggande resultat som sedan används av den yttre frågan.

Underfråga i FROM-klausulen

FROM-satsen kan användas för att ange ett subquery-uttryck i SQL. Relationen som produceras av underfrågan används sedan som en ny relation på vilken den yttre frågan appliceras för ytterligare operationer. Underfrågor iFROMsats används när vi behöver skapa en temporär datauppsättning som inte finns i någon fysisk tabell. Detta kan vara oerhört användbart när du arbetar med komplexa datauppsättningar.

datumsträng java

Korrelationsvariablerna från tabellerna som refereras till i den yttre frågans FROM-sats kan inte användas direkt i underfrågorna i FROM-satsen. Nedan finns två syntaxer för att använda Subquery i FROM-satsen som används i olika scenarier.



1. Enkel underfråga iFROMKlausul:

VÄLJ kolumn1 kolumn2

FROM (VÄLJ kolumn_x AS C1 kolumn_y FROM tabell WHERE-villkor) SOM subquery_table

WHERE yttre_tillstånd;

2. Underfråga iFROMKlausul medJOIN:

VÄLJ kolumn1 kolumn2

FRÅN (VÄLJ kolumn_x SOM C1 kolumn_y FRÅN tabell WHERE PREDIKAT_X) SOM tabell2

inkluderar c-programmering

JOIN tabell1 PÅ table2.some_column = table1.some_column

VAR PREDIKAT;

Parametrar:

  • Underfråga : Den inre frågan inom parentes. Den hämtar data som fungerar som en tillfällig tabell.
  • Alias : Underfrågan måste ges ett alias (subquery_table) som ska refereras till i den yttre frågan.
  • Yttre fråga : Den yttre frågan kan sedan fungera med den här temporära tabellen som skapats genom att underfrågan tillämpar filter eller utför ytterligare operationer.

Hur underfrågor i FROM-klausulen fungerar

  • Utvärdering av underfråga : Underfrågan i from-satsen utvärderas först och sedan lagras resultaten av utvärderingen i en ny temporär relation. 
  • Yttre fråga : Efter att underfrågan har körts och returnerat en datauppsättning utvärderas den yttre frågan genom att endast välja de tuplar från den temporära relationen som uppfyller predikatet i where-satsen i den yttre frågan.

Exempel på användning av subquery i FROM-satsen

Låt oss diskutera några verkliga exempel för att förstå hur underfrågor i FROM-klausulen fungerar i praktiken. Här har vi två bord Instruktör tabell som innehåller information om instruktörer inklusive deras lön och avdelning. Den andra är Avdelning tabell som innehåller information om olika avdelningar inklusive avdelningens budget.

Instruktör Tabell 

Instruktörs-IDNamnAvdelningLön
44547SmedDatavetenskap95 000
44541FaktureraElektrisk55 000
47778EnsamHumaniora44 000
48147ErikMekanisk80 000
411547BalsamInformationsteknik65 000
48898JenaCivil50 000

Avdelning Tabell

Avdelningens namnBudget
Datavetenskap100 000
Elektrisk80 000
Humaniora50 000
Mekanisk40 000
Informationsteknik90 000
Civil60 000

Exempel 1: Hitta alla professorer vars lön är större än den genomsnittliga budgeten för alla institutioner. 

I det här exemplet kommer vi att använda en underfråga i FROM-satsen för att beräkna den genomsnittliga budgeten för alla avdelningar och sedan göra jämförelsen med instruktörernas löner.

byta java-programmering

Fråga:   

lägg till i array java
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;

Produktion  

Instruktörs-IDNamnAvdelningLön
44547SmedDatavetenskap95 000
48147ErikMekanisk80 000

Förklaring:

  • Den genomsnittliga budgeten för alla avdelningar från avdelningsrelationen är 70 000.
  • Erik och Smith är de enda instruktörerna i instruktörsrelationen vars lön är över 70 000 och därför finns i outputrelationen. 

Varför använda underfrågor i FROM-klausulen?

Det finns olika fördelar med att använda Subqueries i FROM-satsen enligt nedan:

  • Förenkling : De kan förenkla komplexa frågor genom att dela upp dem i mindre mer hanterbara delar. Du behöver inte skapa tillfälliga tabeller uttryckligen i din databas.
  • Förbättrad läsbarhet : Genom att använda underfrågor i FROM-satsen gör frågan mer läsbar eftersom den delas > Flexibilitet : Med hjälp av undersökningar kan du utföra operationer som annars skulle vara obekväma som aggregeringar eller filtrering med respekt för andra datamängder utan att skapa mellantabeller.

Slutsats

Underfrågor i FROM-satsen gör det möjligt för oss att definiera  tillfälliga resultatuppsättningar som kan användas av yttre frågor. De gör komplexa SQL-operationer enklare förbättrar frågeläsbarheten och ger flexibilitet i datafiltrering och aggregering. Att veta hur man använder underfrågor inom FROM-klausulen är en grundläggande färdighet för alla SQL-utövare särskilt när de hanterar komplicerade databaser eller när du måste utföra komplex dataanalys.

Skapa frågesport