code:
1
| 'SELECT T1.begin, T1.eind, T2.tekst, T3.naam FROM gebouw AS T1, commentaar AS T2, heilige AS T3 WHERE T1.heilige = T3.idheilige AND T1.referenties_id = T2.referenties_id AND T1.heilige = :consecid AND T1.gebouw = :gebouwid' |
(De variabelen consecid en gebouwid komen via een Ajax call aan en zijn integers)
Het probleem: soms is er geen veld in de tabel commentaar (T2) wat gekoppeld is aan het referenties_id in T1. Er is dan vaak wel weer een referenties_id in T1, maar de voorwaarde "AND T1.referenties_id = T2.referenties_id" geeft dus geen resultaat (oftewel NULL), wat betekend dat de hele query NULL teruggeeft. Hierdoor komt andere data (die dan wel getoond moet worden) ook niet te voorschijn. Dat moet, ook bij het ontbreken van commentaar, wel gebeuren.
Inconsistente database van een klant, niet ideaal
Ik heb in SQL (betreft een MySQL database) al zitten vogelen met de IFNULL() maar krijg daar geen werkende oplossing voor elkaar. De COALESCE() functie krijg ik niet helemaal doorgrond maar lijkt in dit geval ook niet de ideale oplossing.
Iemand tips?
[ Voor 4% gewijzigd door renevanh op 10-05-2015 16:35 ]