Ik sla voor mijn forumapplicatie het totaal aantal berichten dat iemand geplaatst heeft ook op in de gebruikerstabel (in een Access2003 database), dit in verband met een betere performance t.o.v. het gebruiken van een COUNT functie. Nou is dat best te onderhouden bij het plaatsen van een bericht, of het verwijderen van één bericht. Het wordt een beetje problematisch wanneer je een goede update query wil bedenken als er een heel topic of zelfs meerdere topics worden verwijderd.
Nou heb ik de volgende query bedacht, die de postcount van iedere gebruiker weer goed moet zetten:
(Haakjes zijn niet mijn werk, maar van Access, misschien beetje overdreven...
)
Nou de bovenstaande query werkt niet, en ik heb geen idee hoe ik het anders efficiënt aan kan pakken. Ik kan het wel met een query in een loopje oplossen in ASP maar ik hoopte eigenlijk dat het met alleen SQL ook wel ging. Heeft iemand wat pointers voor me?
Nou heb ik de volgende query bedacht, die de postcount van iedere gebruiker weer goed moet zetten:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| UPDATE gebruiker g SET aantal_posts = ( SELECT COUNT(*) FROM bericht WHERE gebruiker_id = g.id ) WHERE ( ( ( ( SELECT COUNT(*) FROM bericht WHERE gebruiker_id = g.id ) ) <> [g].[aantal_posts] ) ) |
(Haakjes zijn niet mijn werk, maar van Access, misschien beetje overdreven...
Nou de bovenstaande query werkt niet, en ik heb geen idee hoe ik het anders efficiënt aan kan pakken. Ik kan het wel met een query in een loopje oplossen in ASP maar ik hoopte eigenlijk dat het met alleen SQL ook wel ging. Heeft iemand wat pointers voor me?
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.