Meer dan 2 tabellen

Het is met de JOIN ook prima mogelijk om op meerdere tabellen te JOINEN. Dit is het gemakkelijkst uit te leggen aan de hand van een voorbeeld uit onze coureurs/ renstal tabellen.

Stel dat je de thuisbaan van een coureur wilt weten. Hiervoor hebben we de volgende tabellen nodig: (ik heb ze voor dit voorbeeld wat aangepast, omdat je anders met de datum rekening moet houden)

TABEL coureurs:
- id (1, 2, 3, 4, 5, 6)
- coureur (Jansen, Schumacher, Verstappen, Rubens, Heins, Markus)
- leeftijd (41, 39, 23, 34, 35, 24)
- renstal (1,NULL,NULL,3,4,NULL)

TABEL renstal:
- id (1,2,3,4)
- naam (Snel, Sneller, Snelst, Allersnelst)

TABEL racebaan:
- id (1,2,3,4,5)
- land (Nl, De, GB, Bra, Be)
- thuisbaan_van (1,3,NULL,NULL,2)



Hier zijn 3 tabellen voor nodig, zoals je ziet. Om de werking van het gebruik van meerdere JOINS in 1 query goed te kunnen begrijpen, moet je onthouden dat een JOIN 2 tabellen samenvoegt tot 1 nieuwe tabel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$query
= "SELECT
        c.naam,
        rb.land
    FROM
        coureurs AS c
    INNER JOIN
                (racebaan AS rb
        INNER JOIN
            renstal AS rs
        ON
               rs.id = rb.thuisbaan_van)
    ON
        rs.id =c.renstal"
;
?>


Je mag in deze voorbeeldquery stellen dat dit deel:
(racebaan AS rb
INNER JOIN
renstal AS rs
ON
rs.id = rb.thuisbaan_van)
Een nieuwe tabel vormt, uit die 2 tabellen, waar je vervolgens weer een join op kan toepassen. Op deze manier kan je je query uitbreiden tot een grote query met een groot aantal joins.

Het resultaat van bovenstaande join zal er zo uitzien:

Jansen -> Nl
Rubens -> De

Als je naar de tabellen kijkt zie je ook dat dit de enige coureurs zijn die bij een renstal zitten die een thuisbaan heeft. Door hier weer de verschillende JOIN typen op toe te passen, kan je ook gegevens over coureurs zonder thuisbaan ophalen.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Voorbeeld
  3. Inner Join
  4. Outer Join
  5. Binnen 1 tabel
  6. Left en Right Join
  7. Meer dan 2 tabellen
  8. Tot Slot

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.