Ga naar inhoud

Header

Data samenvoegen met LEFT JOIN - Opdrachten

1. De rollen van acteurs

We hebben data van acteurs (tabel actors). En data van rollen (tabel roles).

Header

We willen nu weten welke acteur welke rollen vervult.

Hiervoor gaan we gebruik maken van LEFT JOIN.

Maak onderstaande query af om de tabellen samen te voegen.

  • Linker tabel: actors.
  • Rechter tabel: roles.
  • Kolom id uit tabel actors is te matchen met kolom actor_id uit tabel roles.
  • Gebruik LEFT JOIN en ON.
  • Selecteer alle kolommen.
...
  ...
FROM
  actors
  ... ... ON ... = ...;




2. Gebruik aliases

We hebben in de vorige opdracht de tabelnamen voluit geschreven.

We gaan hier nu aliases voor gebruiken met AS.

Hergebruik je code uit de vorige opdracht en pas aliases toe.

  • Noem tabel actors: a.
  • Noem tabel roles: r.
...
  ...
FROM
  actors ... ...
  ... ... ON ... = ...;




3. Specifieke selectie maken

We hebben tot nu toe alle kolommen geselecteerd.

We gaan nu een specifieke selectie maken.

Hergebruik je code uit de vorige opdracht en maak een specifieke selectie.

  • Selecteer alle kolommen uit tabel actors.
  • Selecteer alleen kolom role uit tabel roles.
...
  ...,
  ...
FROM
  actors ... ...
  ... ... ON ... = ...;




4. (Extra) Groeperen

We hebben nu een tabel met alle rollen van acteurs.

Door te groeperen gaan we bepalen hoeveel rollen een acteur heeft gespeeld.

  • Tabel actors bevat al wel een kolom film_count.
  • Maar misschien speelt een acteur wel meerdere rollen in één film.

Hergebruik je vorige code en schrijf een query.

  • Gebruik GROUP BY.
  • Groepeer op kolom id uit tabel actors.
  • Tel het aantal rollen met functie COUNT().
  • Selecteer de volgende kolommen:
    • first_name.
    • last_name.
    • COUNT(...).
...




5. (Extra) Filteren en sorteren

We hebben nu een tabel met het aantal rollen van acteurs.

Door te filteren en sorteren gaan we het resultaat bruikbaarder maken.

Hergebruik je vorige code en schrijf een query.

Zodanig dat: * Filter zodat alleen acteurs met meer dan 1 rol voorkomen. * Gebruik HAVING. * Sorteer aflopend op het aantal rollen. * Gebruik ORDER BY.

...