Informatie uit meerdere tabellen: joins - Samengestelde joins

4 belangrijke vragen over Informatie uit meerdere tabellen: joins - Samengestelde joins

Wat is een samengestelde join?

Een join die meerdere tabellen, bijvoorbeeld meerdere ouder of grootouder tabellen, joint.

Hoe heet een samengestelde join ook wel?

Een meervoudige join.

Hoe moet je een join lezen met een inner join operator en b.v. 3 tabellen?

Lees de joinexpressie als volgt: eerst wordt Stuk gejoind met Componist
volgens de eerste joinconditie, vervolgens wordt het resultaat daarvan
gejoind met Niveau, volgens de tweede joinconditie. U mag haakjes
denken rond de deelexpressie Stuk S join Componist C on S.componist =
C.nr

select C.naam componist, S.titel, N.omschrijving
from Stuk S
join Componist C on S.componist = C.nr
join Niveau N on S.niveau = N.code;
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Hoe maak je gebruik van gemixt inner een outer join?

Niet anders dan normaal logisch is:

SQL> select C.naam, S.titel, M.naam
CON> from Stuk S
CON> inner join Componist C on S.componist = C.nr
CON> join Muziekschool M on C.school = M.code
CON> where S.speelduur <= 5;





Geef van alle stukken de naam van de componist, de titel en  voor zover
van toepassing  de naam van de muziekschool en de niveauomschrij-
ving.

We willen geen enkel stuk missen. Niet de stukken zonder muziekschool
en evenmin de stukken zonder niveaucode. De oplossing vraagt dus om
left outer joinen met Muziekschool én met Niveau. Met gebruik van
joinoperatoren is dat geen probleem:

select C.naam, S.titel, M.naam, N.omschrijving
from Stuk S
join Componist C on S.componist = C.nr
left outer join Muziekschool M on C.school = M.code
left outer join Niveau N on S.niveau = N.code;

Resultaat:
NAAM TITEL NAAM OMSCHRIJVING
================= ================== =========================== ============
Charlie Parker Blue bird <null> <null>
Thomas Guidi Blue bird Muziekschool Amsterdam gevorderden
Thomas Guidi Cradle song Muziekschool Amsterdam gevorderden
Rudolf Escher Air pour charmer <null> gevorderden
Sofie Bergeijk Lina Reijnders' Muziekschool gevorderden
Sofie Bergeijk Little Lina Reijnders' Muziekschool beginners
W.A. Mozart Berceuse <null> <null>
W.A. Mozart Non piu andro <null> <null>
Karl Schumann I'll never go Reijnders' Muziekschool beginners
Jan van Maanen Swinging Lina Muziekschool Amsterdam gevorderden
Jan van Maanen Blue sky Muziekschool Amsterdam beginners


Vervangen we de eerste outer join door een inner join, dan krijgen we
alleen stukken van muziekschooldocenten. Vervangen we de tweede
outer join door een inner join, dan krijgen we alleen de echte speel-
stukken (dat zijn de stukken met niveauvermelding). Vervangen we ze
beide door een inner join, dan krijgen we alleen de echte speelstukken
van muziekschooldocenten. Bij de eerste join maakt ‘inner’ of ‘outer’
niets uit, zoals altijd bij een verplichte verwijzing.

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo