Hallo, ich schreibe derzeit an einem eigenen Forum und stehe vor einem .. Problem :
Ich habe je eine Tabelle für Threads, Postings und Foren.
Ich will nun am besten mit einem SQL-Befehl folgendes Ergebnis haben : Alle Daten des jeweiligen Forums (Name, Beschreibung, Moderatoren), die Anzahl der Threads (am besten per count auf die Threadtabelle), die Anzahl der Postings ( wieder am besten per count auf die Postingtabelle). Bis hierher alles nicht das Problem... Dann fehlt da noch die Anzeige des letzten beitrages in diesem Forum, hier wirds problematisch, ich habe etwas mit einem LEFT JOIN und GROUP BY gebastelt was eigentlich ganz gut funktioniert hat, bis darauf das ich immer den ersten datensatz, somit also das älteste Posting des Forums hatte und nicht das neuste....
Der bisherige Befehl :
SELECT forum.id, forum.name, forum.text, forum.c_id, forum.threads, forum.posts, post.name AS pname, post.id AS p_id, user.user AS u_name, user.id AS u_id FROM forum AS forum LEFT JOIN post AS post ON forum.id=post.f_id LEFT JOIN user AS user ON post.u_id=user.id WHERE ISNULL(forum.del) GROUP BY forum.id ORDER BY forum.sort ASC;
Vielleicht hat jemand eine Idee, ich bin mit meinem (SQL-)Latein irgendwie am Ende... Es wäre zwar einfach das ganze Manuell abzufragen, ich bin mir aber nicht sicher ob das (gerade bei vielen Unterforen) noch performant ist....
Ich habe je eine Tabelle für Threads, Postings und Foren.
Ich will nun am besten mit einem SQL-Befehl folgendes Ergebnis haben : Alle Daten des jeweiligen Forums (Name, Beschreibung, Moderatoren), die Anzahl der Threads (am besten per count auf die Threadtabelle), die Anzahl der Postings ( wieder am besten per count auf die Postingtabelle). Bis hierher alles nicht das Problem... Dann fehlt da noch die Anzeige des letzten beitrages in diesem Forum, hier wirds problematisch, ich habe etwas mit einem LEFT JOIN und GROUP BY gebastelt was eigentlich ganz gut funktioniert hat, bis darauf das ich immer den ersten datensatz, somit also das älteste Posting des Forums hatte und nicht das neuste....
Der bisherige Befehl :
SELECT forum.id, forum.name, forum.text, forum.c_id, forum.threads, forum.posts, post.name AS pname, post.id AS p_id, user.user AS u_name, user.id AS u_id FROM forum AS forum LEFT JOIN post AS post ON forum.id=post.f_id LEFT JOIN user AS user ON post.u_id=user.id WHERE ISNULL(forum.del) GROUP BY forum.id ORDER BY forum.sort ASC;
Vielleicht hat jemand eine Idee, ich bin mit meinem (SQL-)Latein irgendwie am Ende... Es wäre zwar einfach das ganze Manuell abzufragen, ich bin mir aber nicht sicher ob das (gerade bei vielen Unterforen) noch performant ist....
Kommentar