Ik heb twee mysql tabellen (eenheden en statussen). De structuur voor deze tabellen is:
Eenheden:
id (int, PRIMARY, AI)
roepnummer (vchar(6)
locatie (varchar(255))
status (int)
leden (varchar(255)
telefoon (varchar(255))
Voorbeeld data:
id, roepnummer, locatie, status, leden, telefoon
1, '52-201', 'Centrale post', 1, 'Jan en henk', '0612345678'
2, '52-24', 'Start/Finish', 3, 'Jolanda', '0698765432'
3, '1597', 'Ambulance parkeer', 2, '0645678923'
Statussen:
id (int, PRIMARY, AI)
status (varchar(255))
bgcolor (varchar(7))
txtcolor (varchar(7))
Voorbeeld data:
id, status, bgcolor, txtcolor
1, 'Beschikbaar', '#FFFFFF', '#000000'
2, 'Behandelen', '#1d27ad', '#FFFFFF'
3, 'Pauze', '#FFFFFF', '#959c97'
Ik wil de volgende query uitvoeren:
SELECT
e.id, e.roepnummer, e.locatie, e.telefoon, e.leden, statussen.status, statussen.bgcolor as bgcolor, statussen.txtcolor as txtcolor
FROM
`eenheden` as e
JOIN
statussen ON e.status=statussen.id
Ik gebruik de volgende code:
<?php
$db = \Config\Database::connect();
$builder = $db->table('eenheden');
$builder->select('e.id, e.roepnummer, e.locatie, e.telefoon, e.leden, statussen.status as status, statussen.bgcolor as bgcolor, statussen.txtcolor as txtcolor');
$builder->from('eenheden as e');
$builder->join('statussen', 'e.status = statussen.id');
return $builder->get()->getResultArray();
?>
Nu komt het probleem waar ik mee zit. Ik krijg veel meer resultaten dan ik zou verwachten. Wanneer tabel Eenheden slechts 1 rij bevat, krijg ik 1 resultaat. Wanneer Eenheden twee rijen heeft, krijg ik 4 resultaten (2 per rij in eenheden, met identieke data). Met 3 rijen in Eenheden krijg ik 9 resultaten (3 per rij), enzovoort.
Wanneer ik de bovenstaande query handmatig uitvoer, werkt deze zoals ik zou verwachten.
Mis ik iets> Voegt CI4 iets toe aan mijn query dat hier voor zorgt? Of werkt mijn code snippet niet zoals ik verwachten zou en moet ik nog iets toevoegen? Ik staar mij hier al een week blind op, heb uren op Google gezocht, de CI4 documentatie meermaals doorgelezen. Ik kan het niet vinden.