Left en Right Join
Zoals in het vorige deel stuk al duidelijk was werden niet alle renstallen weergegeven in het resultaat. Wil je alle renstallen weergeven, of ze nu een thuisbaan hebben of niet, dan gebruik je in dit geval een LEFT JOIN.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$query="
SELECT
r.naam
rb.land
FROM
renstal AS r
LEFT JOIN
racebaan coureurs AS rb
ON
rb.thuisbaan_van = r.id";
?>
$query="
SELECT
r.naam
rb.land
FROM
renstal AS r
LEFT JOIN
racebaan coureurs AS rb
ON
rb.thuisbaan_van = r.id";
?>
Het resultaat van deze LEFT JOIN query ziet er als volgt uit:
Snel -> Nl
Sneller -> De
Snelst -> Be
Allersnelst -> NULL
Je hebt nu alle renstallen op een rijtje, en als er een thuisbaan is voor ze dan is die ook aangegeven. Maar wat als je alle landen weer wilt geven, met de daarbij horende renstal?
Je kan dan 2 dingen doen. Je kan de volgorde van de tabellen veranderen in je query (dan wisselen de regel voor LEFT JOIN en de regel daarna van plaats) of je maakt van de LEFT JOIN een RIGHT JOIN.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$query="
SELECT
r.naam
rb.land
FROM
renstal AS r
RIGHT JOIN
racebaan coureurs AS rb
ON
rb.thuisbaan_van = r.id";
?>
$query="
SELECT
r.naam
rb.land
FROM
renstal AS r
RIGHT JOIN
racebaan coureurs AS rb
ON
rb.thuisbaan_van = r.id";
?>
Het resultaat van deze RIGHT JOIN query ziet er als volgt uit:
Snel -> Nl
Sneller -> De
Snelst -> Be
NULL -> GB
NULL -> Bra
« vorige pagina | volgende pagina »