Archief - MYSQL: foreign keys en outer joins?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

passero

Legacy Member
Ik heb hier blijkbaar een probleemke met foreign keys en outer join..
even de situatieschet:

Tabel: Leerlingen (alias lln)
id, naam, kls_id
Tabel: Toetsen (alias tts)
id, titel, kls_id, vak_id
Tabel: toets_punten (alias tpt)
id, tts_id,lln_id, punt

Nu wil een overzicht hebben van de punten van 1 bepaalde leerling voor alle punten:

select lln.naam,tpt.punt from leerlingen lln
left outer join toets_punten tpt on tpt.lln_id = lln.id
left outer join toetsen tts on tts.id = tpt.tts_id
where kls_id = $kls_id

Of ik nu left of right of inner join doe, ik zie geen verschil in mijn result.
Normaal verwacht ik dat ik een overzicht krijg van alle leerlingen van een bepaalde klas. Wanneer alle leerlingen punten hebben voor alle testen dan is alles ok, maar wanneer er bijvoorbeeld 2 testen in de DB zitten en een leerling heeft maar 1 test, dan krijg ik ook maar 1 record in mijn result, terwijl ik hier eigenlijk NULL wil hebben. Dit bekom ik toch met die outer join?

Kan dit zijn dat dit komt omdat er effectief een FK constraint op de velden tts_id, lln_id liggen op de tabel toets_punten?

Hoe zou ik dat kunnen oplossen?
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan