Schmiddi Geschrieben 2. Januar 2007 Teilen Geschrieben 2. Januar 2007 Hallo, ich habe ein Forum mit folgenden Tabellen: forum_threads #################################################### # ID # Titel # Message # Poster # CreateDate # Hits# # # # # # # # # # # # # # # #################################################### [/PHP] forum_antworten [PHP] ###################################################### # ID # ThreadID# Message # Poster # CreateDate # Hits# # # # # # # # # # # # # # # ###################################################### Jetzt sollen die Threads bei der Ausgabe nach dem Datum der neuesten Antwort sortiert werden. Hat jemand eine Ahnung, wie ich das machen kann? Gruß, Andreas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 2. Januar 2007 Teilen Geschrieben 2. Januar 2007 je nach DBMS (mysql? *rat*), ein JOIN auf forum_threads.ID und forum_antworten.ID und ein ORDER BY forum_antworten.CreateDate (neueste antwort, dann halt noch DESC, absteigend sortiert). s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schmiddi Geschrieben 3. Januar 2007 Autor Teilen Geschrieben 3. Januar 2007 Hallo, sorry hatte vergessen zu sagen dass es sich um MySQL handelt Also ich hab das mal ohne JOIN gemacht, aber bin der Lösung schon ziemlich nahe: SELECT a.ID, a.ThreadID, a.Poster, max(a.CreateDate) as foo, t.ID, t.Titel, t.Poster, t.CreateDate FROM forum_antworten a, forum_threads t WHERE a.ThreadID=t.ID GROUP BY t.Titel ORDER BY foo DESC [/PHP] Das listet mir die Threads sortiert nach der neuesten Antwort auf. Allerdings nur die Threads, für die schon eine Antwort existiert! Wie bekomm ich jetzt die andren Threads mit deren Erstellungsdatum auch noch in die Sortierung? Danke! Gruß, Andreas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schmiddi Geschrieben 3. Januar 2007 Autor Teilen Geschrieben 3. Januar 2007 Hier hab ich dasselbe nochmal mit dem JOIN, allerdings hab ich noch immer keine Ahnung wie ich die Threads ohne Antworten da mit reinbekomme? SELECT t.Titel, max( a.CreateDate ) AS Datum FROM forum_antworten a INNER JOIN forum_threads t ON t.ID = a.ThreadID GROUP BY t.Titel ORDER BY Datum DESC [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Monty82 Geschrieben 5. Januar 2007 Teilen Geschrieben 5. Januar 2007 SELECT t.Titel, IFNULL(max(a.CreateDate),t.CreateDate) AS Datum FROM forum_threads AS t LEFT JOIN forum_antworten AS a ON a.ThreadID=t.ID GROUP BY t.ID ORDER BY Datum DESC Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DiHo Geschrieben 6. Januar 2007 Teilen Geschrieben 6. Januar 2007 Hi, um Redundanz zu verhindern solltest du im Forum Thread lediglich den Titel des Threads speichern, den Rest kannst du im Antworten-Thread speichern. Zum einen kann es ja sein, daß du z.B. den ersten post eines Themas löschen willst und dann ist gleich das ganze Thema gekilled (obwohl vielleicht einzelne Antworten recht gut waren). So würdest du auch die Thread-Tabelle kleiner halten. Nur so als Tipp. Gruß, DiHo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schmiddi Geschrieben 8. Januar 2007 Autor Teilen Geschrieben 8. Januar 2007 Danke, funktioniert bestens! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.