Ik heb een programma waarin ik transacties met daarin berichten en daarin bericht regels in een database plaats.
Elk record uit de tabel Transacties heeft dus 1 of meerdere records uit de tabel Berichten en deze heeft weer 1 of meerdere records in de tabel Inhoud.
Mijn query moet een lijst van transacties geven die voldoen aan bepaalde woorwaarden die ik netjes in de where van mijn query stop.
Tot hier gaat alles eigenlijk nog prima, echter is het geheel iets complexer geworden doordat transacties weer subtransacties kunnen bevatten en deze kunnen dat ook weer tot onbeperkt diep.
Nu wil ik een lijst van transacties gaan maken die niet een parent transacties in die lijst hebben.
De oplossing die ik daarvoor heb is dat ik via de voorwaarden de lijst van transacties krijg, en als extra in de where stop ik dan not in met tussen de ( ) dezelfde query maar dan zonder de not in.
Eigenlijk zonde dus want de database is niet zo slim om te zien dat het bijna dezelfde query is en voert op deze manier dus 2 keer hetzelfde uit.
Ook een nadeel is dat transacties niet uit de lijst gehaald worden als hun directe parent niet in de lijst zit maar een parent erboven wel.
Is dit makkelijker op te lossen?
Elk record uit de tabel Transacties heeft dus 1 of meerdere records uit de tabel Berichten en deze heeft weer 1 of meerdere records in de tabel Inhoud.
Mijn query moet een lijst van transacties geven die voldoen aan bepaalde woorwaarden die ik netjes in de where van mijn query stop.
Tot hier gaat alles eigenlijk nog prima, echter is het geheel iets complexer geworden doordat transacties weer subtransacties kunnen bevatten en deze kunnen dat ook weer tot onbeperkt diep.
Nu wil ik een lijst van transacties gaan maken die niet een parent transacties in die lijst hebben.
De oplossing die ik daarvoor heb is dat ik via de voorwaarden de lijst van transacties krijg, en als extra in de where stop ik dan not in met tussen de ( ) dezelfde query maar dan zonder de not in.
Eigenlijk zonde dus want de database is niet zo slim om te zien dat het bijna dezelfde query is en voert op deze manier dus 2 keer hetzelfde uit.
Ook een nadeel is dat transacties niet uit de lijst gehaald worden als hun directe parent niet in de lijst zit maar een parent erboven wel.
Is dit makkelijker op te lossen?
486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22