Jeg tror ikke du kan løse det med een query. Hvilket scriptsprog bruger du foran for så kan jeg lige hurtigt kode noget der finder de informationer til dig.
SELECT f.id, f.subject, u.fullname, MAX(c.date) AS date, COUNT(1) AS svar FROM forum AS f INNER JOIN users AS u ON f.user_id = u.user_id LEFT JOIN forum AS c ON f.id = c.parent_id ORDER BY flaf
Bruger PHP men det skal fungere som en query jeg kan sagtens selv lave det som flere forskellige query's. Men det må da kunne lade sige gøre med noget subquery magic og lidt GROUP BY eller noget i den dur?
Den er dog kun i et niveau - hvis du har et komplet "trådet" forum, så kan den ikke. Men hvis du bare har "hovedindlæg" og til disse "underindlæg", så kan man som ovenstående.
SELECT f.id, f.subject, u.fullname, MAX(c.date) AS date, COUNT(1) AS svar FROM forum AS f INNER JOIN users AS u ON f.user_id = u.user_id LEFT JOIN forum AS c ON f.id = c.parent_id GROUP BY f.id ORDER BY flaf
SELECT f.id, f.subject, u.fullname, MAX( c.date ) AS date, COUNT( 1 ) AS svar FROM forum AS f INNER JOIN users AS u ON f.user_id = u.user_id LEFT JOIN forum AS c ON f.id = c.parent_id WHERE f.parent_id =0 GROUP BY f.id ORDER BY f.date
Men af en eller anden grund så får den ikke altid korrekt dato ud? Det syntes jeg er rimelig underligt.
Ja, selvfølgelig - så er der ingen max_date - men prøv:
SELECT f.id, f.subject, u.fullname, IFNULL(MAX( c.date ), f.date) AS date, COUNT( 1 ) AS svar FROM forum AS f INNER JOIN users AS u ON f.user_id = u.user_id LEFT JOIN forum AS c ON f.id = c.parent_id WHERE f.parent_id =0 GROUP BY f.id ORDER BY f.date
Det bliver bedre og bedre :) Men antallet af svar er dog ikke korrekt. For både når der er ET svar returnerer den 1 OG når der er NUL svar returnerer den 1.
SELECT f.id, f.subject, u.fullname, IFNULL(MAX( c.date ), f.date) AS date, IF(c.id IS NULL, 0, COUNT( 1 )) AS answer FROM forum AS f INNER JOIN users AS u ON f.user_id = u.user_id LEFT JOIN forum AS c ON f.id = c.parent_id WHERE f.parent_id =0 GROUP BY f.id ORDER BY f.date
Det virker :) Mange tak for hjælpen! Opret lige et svar barklund så du kan få nogle point! Btw hvordan har du lært at strikke sql sammen? Jeg legede meget med det for 2 år siden men er monster rusten lige nu så et par gode råd ville være lækkert!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.