Skip to main content

Joins

In deze les leer je hoe je de gegevens uit twee tabellen uit de deatabase kunt combineren

Uitleg

In een relationele database zitten meerdere tabellen en met behulp van relaties kun je deze gegevens combineren. In deze les leren we op een hele eenovdige manier hoe je dat kunt doen.

Stel je hebt twee tabellen: persoon en stad.

De tabel persoon bestaat uit 4 rows en 5 kolommen.

ID voornaam achternaam stad
1 Jane Collinson 101
2 Mohamed Lisram 103
3 Leo Thompson 101
4 Montano Drew 104
5 Greg Lewinky 105

De tabel stad bestaat uit 5 rows en 2 kolommen

ID naam
101 Amsterdam
102 Diemen
103 Abcoude
105 Utrecht
106 Bovenkerk

Vraag 1: weet jij waar Jane Collinson woont (goed kijken)?

Als je ziet waar Jane woont dan heb je waarschijnlijk gezien dat de kolom stad uit de tabel persoon verwijst naar de kolom ID uit de tabel stad. Of in het kort:

persoon.stad = stad.ID

Primary Key en Foreign Key

De kolom persoon.stad verwijst naar een andere tabel dat heet een foreign key (vreemde key, een key van een andere tabel).

De kolom ID in de tabel stad is een primary key. Een hoofd sleutel. Een primary key heeft voor elke regel een unieke waarde en je kan er dus altijd precies één rij mee aanwijzen.

Een foreign key verwijst naar een aan andere primary key maar hoeft niet uniek te zijn. Kijk maar in het voorbeeld, Jane en Leo wonen allebij in stad 101 (Amsterdam) en hebben dus dezelfde foreigen key.

Opdracht

Maak een nieuwe database aan in phpmyadmin en noem de database persoon.

We gaan nu een database en twee tabellen maken in phpmyadmin. Als je niet meer weet hoe dat werkt, kijk dan bij https://www.roc.ovh/link/89#bkmrk-page-title

Maak in deze database twee tabellen:

  1. persoon met de kolommen ID (integer), voornaam (varchar(80)), achternaam (varchar(80)), en stad (integer)
  2. stad met de kolommen ID (integer) en naam (varchar(80)).
  3. vul de tabellen nu met de waarden zoals hierboven aangegeven.

Voer nu de volgende query uit:

SELECT *
FROM persoon
JOIN stad
ON persoon.stad = stad.id