SQL har følgende typer joins, som alle kommer direkte fra mængdeteori:
-
Indre sammenføjning.
From A inner join Ber ækvivalent med A ∩ B, hvilket giver det sæt af elementer, der er fælles for begge sæt. -
Venstre ydre samling.
From A left outer join Ber ækvivalent med (A − B) ∪ (A ∩ B). Hvert A vises mindst én gang; hvis der er flere matchende B'er, vil A'et blive gentaget én gang pr. matchende B. -
Højre ydre samling.
From A right outer join Ber ækvivalent med (A ∩ B) ∪ (B − A). Det er identisk med en venstre join med bordene, der handler med pladser. Hver B vises mindst én gang; hvis der er flere matchende As, vil hver B blive gentaget én gang pr. matchende B. -
Fuld ydre forbindelse.
From A full outer join Ber ækvivalent med (A − B) ∪ (A ∩ B) ∪ (B − A). Hver A og hver B vises mindst én gang. Hvis et A matcher flere B'er, vil det blive gentaget én gang pr. match; hvis et B matcher flere Som det vil blive gentaget én gang pr. match. -
Cross Join.
From A cross join Ber producerer det kartesiske produkt A × B. Hver A gentages én gang for hver B. Hvis A har 100 rækker og B har 100 rækker, vil resultatsættet bestå af 10.000 rækker.
Det skal bemærkes, at den teoretiske udførelse af en select forespørgslen består af følgende trin udført i denne rækkefølge:
-
Beregn det fulde kartesiske produkt af kildesættet(erne) i
fromklausul for at prime kandidatresultatsættet. -
Anvend joinkriterierne i
fromklausul og reducere kandidatresultatsættet. -
Anvend kriterierne i
where clausefor yderligere at reducere kandidatresultatsættet. -
opdele kandidatresultatsættet i grupper baseret på kriterierne i
group byklausul. -
Fjern fra kandidatresultatsættet andre kolonner end dem, der er involveret i
group byklausul eller involveret i evalueringen af en samlet funktion. -
Beregn værdien af sådanne samlede funktioner for hver gruppe i kandidatresultatsættet.
-
Skjul hver gruppe i kandidatresultatsættet i en enkelt række bestående af grupperingskolonnerne og de beregnede værdier for hver aggregeret funktion. Kandidatresultatsættet består nu af én række for hver gruppe, med alle kolonner bortset fra
group bykolonner eller beregningsværdierne for aggregerede funktioner for gruppen elimineres. -
Anvend kriterierne i
havingklausul for at reducere kandidatresultatsættet og producere det endelige resultatsæt. -
Bestil det endelige resultat efter kriterierne i
order byklausul og udsende den.
Der er flere trin, der har at gøre med ting som compute og compute by klausuler, men dette er tilstrækkeligt til at få den teoretiske opfattelse af, hvordan det fungerer.
Det skal også bemærkes, at intet andet end den mest naive implementering faktisk ville evaluere en select erklæring på denne måde, men de producerede resultater skal være de samme, som hvis ovenstående trin blev udført fuldt ud.