Ik zit met het volgende probleem. Ik heb een gastenboek/forum achtig ding gemaakt met php (en mysql als DB). De tabel ziet er ongeveer zo uit (hierbij zijn een hoop velden weggelaten, maar alleen deze zijn van belang)
Als het type POST is dan is het het eerste bericht van een topic. Is het een REPLY dan is het uiteraard en reply in een topic (waarbij POST_ID aangeeft bij welke topic de reply hoort). POST_UNIX is de tijd dat het bericht is gepost in Unix tijd (heb voor het voorbeeld even rare waardes gebruikt, maar dat is wat verzichtelijker dan zo'n enorm getal).
Maar goed, ik wil dus een overzicht krijgen van alle topics, dan doe je dus:
Dat werkt leuk, maar de volgorde klopt dan uiteraard niet. Ik wil graag alle topics ophalen, maar deze moeten geordend worden op de tijd dat de laatste reply was. Nu wordt alles geordend op de tijd dat de topic is aangemaakt.
Hoe krijg ik dit voor elkaar
Ik heb al diverse dingen geprobeerd.
Zo kan je:
doen, maar dan neemt hij weer de eerste reply ipv de laatste.
Heb ook dingen met subquerys geprobeerd maar ik word er niet wijzer van.
Ik weet dat je eigenlijk geen code requests mag doen, maar kan iemand mij opweg helpen met de query.
Het begint me na zoveel dagen klooien toch wel te irriteren
| ID | TYPE | POST_ID | POST_UNIX | SUBJECT |
| 1 | post | 1 | 100 | bericht1 |
| 2 | reply | 1 | 101 | bericht1 |
| 3 | post | 3 | 102 | bericht2 |
| 4 | reply | 1 | 103 | bericht1 |
| 5 | reply | 3 | 104 | bericht2 |
Als het type POST is dan is het het eerste bericht van een topic. Is het een REPLY dan is het uiteraard en reply in een topic (waarbij POST_ID aangeeft bij welke topic de reply hoort). POST_UNIX is de tijd dat het bericht is gepost in Unix tijd (heb voor het voorbeeld even rare waardes gebruikt, maar dat is wat verzichtelijker dan zo'n enorm getal).
Maar goed, ik wil dus een overzicht krijgen van alle topics, dan doe je dus:
code:
1
| SELECT subject FROM tabel ORDER BY post_unix DESC |
Dat werkt leuk, maar de volgorde klopt dan uiteraard niet. Ik wil graag alle topics ophalen, maar deze moeten geordend worden op de tijd dat de laatste reply was. Nu wordt alles geordend op de tijd dat de topic is aangemaakt.
Hoe krijg ik dit voor elkaar
Zo kan je:
code:
1
| SELECT DISTINCT post_id FROM tabel |
doen, maar dan neemt hij weer de eerste reply ipv de laatste.
Heb ook dingen met subquerys geprobeerd maar ik word er niet wijzer van.
Ik weet dat je eigenlijk geen code requests mag doen, maar kan iemand mij opweg helpen met de query.