• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[MySql] group by - Sortierung?

S

slosd

Guest
Hi, ich mach hier gerade ein Mini-Forum und möchte die 5 aktuellsten Threads einer Gruppe (="Themenbereich") mit ihrem letzten Post und dazugehörigen Infos anzeigen.
Ein Thread wird dann so dargestellt:
threadsr0.jpg


Ich wollte das mit einer Abfrage machen, scheitere aber am Usernamen.
Code:
SELECT t.id, p.id as post_id, t.title, u.name as author, MAX(p.date) as date
FROM threads t, posts p, users u
WHERE t.group_id = 1 AND t.id = p.thread_id AND u.id = p.author_id
GROUP BY p.thread_id
ORDER BY date DESC LIMIT 5
Und zwar wird der User, der den ersten Post geschrieben - also den Thread gestartet - hat ausgewählt. Ich bräuchte also eine Möglichkeit, dass ich beim GROUP BY die Daten des neuesten Posts des jeweiligen Threads erhalte.
 
Hallo slosd,

hier ist eine ähnliche/gleiche Problematik: Link

Bei dem Beispiel kannst du die Automarken durch 'Threads' und das Personenalter durch 'Datum der Posts' ersetzen.
 
Hab endlich Zeit gefunden das mal auszuprobieren und es funktioniert! Vielen Dank. Ich hab dein Beispiel mit dem Subselect verwendet:
Code:
SELECT t.id, p.id as post_id, t.title, u.name as author, p.date
FROM %s t, %s p, %s u
WHERE t.group_id = %d AND t.id = p.thread_id AND u.id = p.author_id
AND p.date = (
	SELECT
		max(date)
	FROM
		%s
	WHERE
		thread_id = t.id
	GROUP BY
		thread_id
)
ORDER BY date DESC LIMIT %d
 
Zurück
Oben