LEFT JOIN werkt niet goed
een tabel met alle meetpunten:
# TABEL MEETPUNTEN
===================================
ID | OMSCHRIJVING | VOLGORDE | ...
===================================
1 | voorbereiding | 1
2 | gestart | 2
3 | gereed | 3
4 | afgesloten | 4
een tabel met planregels:
# TABEL PROJECTPLANNING
===============================================
ID | PROJECTID | MEETPUNTID | EXTRAMEETPUNTID |
===============================================
1 | 5 | 1 | NULL |
2 | 5 | 1 | 1 |
3 | 6 | 1 | NULL |
4 | 5 | 2 | NULL |
Ik wil een planningoverzicht met ALLE MEETPUNTEN en (waarbij aanwezig) ook de geplande meetpunten, waarbij geen EXTRAMEETPUNTID (NULL of 0) bestaat.
Dit probeer ik met de volgende query:
Code (php)
1
2
3
2
3
<?php
$sql = 'SELECT MEETPUNTEN . ID as MEETPUNTEN_ID , MEETPUNTEN . OMSCHRIJVING , MEETPUNTEN . BLOCK , PROJECTPLANNING . * FROM MEETPUNTEN LEFT JOIN PROJECTPLANNING ON MEETPUNTEN . ID = PROJECTPLANNING . MEETPUNTID WHERE PROJECTID = 5 AND EXTRAMEETPUNTID IS NULL OR EXTRAMEETPUNTID = 0 ORDER BY VOLGORDE , OMSCHRIJVING LIMIT 0, 30 ';
?>
$sql = 'SELECT MEETPUNTEN . ID as MEETPUNTEN_ID , MEETPUNTEN . OMSCHRIJVING , MEETPUNTEN . BLOCK , PROJECTPLANNING . * FROM MEETPUNTEN LEFT JOIN PROJECTPLANNING ON MEETPUNTEN . ID = PROJECTPLANNING . MEETPUNTID WHERE PROJECTID = 5 AND EXTRAMEETPUNTID IS NULL OR EXTRAMEETPUNTID = 0 ORDER BY VOLGORDE , OMSCHRIJVING LIMIT 0, 30 ';
?>
De query geeft echter niet het gewenste resultaat, de left join zou er toch voor moeten zorgen dat alle resultaten van MEETPUNTEN worden getoond en alleen de regels met een match uit PROJECTPLANNING worden samengevoegd.
Kortom, Wat doe ik hier niet goed? Ik zou graag het volgende resultaat willen hebben voor project 5:
# RESULTAAT
+====================================================================+
| ID | MEETPUNTEN_ID | PROJECTID | OMSCHRIJVING | EXTRAMEETPUNTID |
+====================================================================+
| 1 | 1 | 5 | voorbereiding | NULL |
| 4 | 2 | 5 | gestart | NULL |
| NULL | 3 | NULL | gereed | NULL |
| NULL | 4 | NULL | afgesloten | NULL |
+====================================================================+
Er zijn nog geen reacties op dit bericht.