[MySQL] - Probleem met MAX en GROUP BY
Code (php)
1
2
3
4
5
2
3
4
5
SELECT forum_question.*, phpmylogon.name AS name, COUNT(forum_answer.id) AS reply, MAX(forum_answer.datetime) AS last_reply
FROM forum_question, phpmylogon, forum_answer
WHERE forum_question.phpmylogon_id = phpmylogon.id
AND forum_question.id = forum_answer.question_id
ORDER BY last_reply ASC
FROM forum_question, phpmylogon, forum_answer
WHERE forum_question.phpmylogon_id = phpmylogon.id
AND forum_question.id = forum_answer.question_id
ORDER BY last_reply ASC
Ik wil dus het volgende:
Alle topic's
- Topic titel
- De naam van degene die hem geplaatst heeft
- Het aantal reacties
- De datum van de laatste reactie
- Gesorteerd op de datum van de laatste reactie
Dit het liefst in 1 query.
De volgende query gaat goed, echter mis ik hier de datum van de laatste reactie:
Code (php)
1
2
3
4
2
3
4
SELECT forum_question.*, phpmylogon.name AS name, COUNT(forum_answer.id) AS reply
FROM forum_question, phpmylogon, forum_answer
WHERE forum_question.phpmylogon_id = phpmylogon.id
AND forum_question.id = forum_answer.question_id
FROM forum_question, phpmylogon, forum_answer
WHERE forum_question.phpmylogon_id = phpmylogon.id
AND forum_question.id = forum_answer.question_id
Mijn tabellen:
forum_question (topics)
- id
- titel
- tekst
- phpmylogon_id
forum_answer (reacties op topics)
- id
- question_id
- tekst
- phpmylogon_id
- datetime
phpmylogon (loginsysteem)
- id
- name
Zoals jullie zien heb ik de tabellen eerst zo eenvoudig mogelijk gehouden, de phpmylogon tabel wordt later uitgebreid.
Zouden jullie kunnen helpen? Ik kom er zelf niet meer uit, volgens de foutmelding moet ik de group by query gebruiken, echter kom ik er maar niet uit hoe.
Eigenlijk zoek ik dus een query zoals phphulp.nl hem gebruikt voor het forum overzicht.
Gewijzigd op 01/01/1970 01:00:00 door Andries Louw Wolthuizen
Je datamodel klopt niet. Waarom een veld 'tekst' in de tabel forum_question en nogmaals in de tabel forum_answer? Maak twee tabellen: topics en posts. De post met de vroegste DATETIME is de eerste in een topic.
Dus, de eerste post, wordt de post van de topicstarter? Dat is best wel slim, had ik nog niet over nagedacht. Ik ga eens kijken of het me nu lukt.
Ja, precies :-)