Seite 1 von 1

MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 17:51
von Transmigrasi
Hallo,

ich bin gerade dabei, ein kleines Forum zu schreiben.
Dabei möchte ich die Thread natürlich nach der letzten Antwort sortieren. Dazu möchte ich aber in der Tabelle "threads" kein eigenes Feld mit dem Timestamp der letzten Antwort, sondern nach dem Timestamp der Tabelle "posts" sortieren.

Um das mal zu veranschaulichen:

Tabelle "threads"
-id
-ueberschrift
-timestamp
-...

Tabelle "posts"
-id
-text
-thread (enthält die id des entsprechenden Threads)
-timestamp

Nun möchte ich, dass die tabelle "threads" nach dem Timestamp der jeweils letzten Antwort aus "posts" sortiert wird. Und sollte keine Antwort vorhanden sein, soll der Timestamp in "threads" verwendet werden.

Mein Ansatz bisher:

Code: Alles auswählen

SELECT A.ueberschrift
FROM threads AS A LEFT JOIN posts AS B       
ON  B.thread=A.id ORDER BY B.timestamp DESC 
Ich hoffe, ich konnte es einigermaßen verständlich ausdrücken
Leider fehlt mir jegliche weitere Idee, da bei meinen Abfragen immer seehr komische Sortierungen rauskommen.

Danke und viele Grüße
Transmigrasi

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 19:03
von Ice Man
greife doch zuerst auf die Tabelle posts zu
Sortieren per "order by id DESC"

Dann in der Ausgabe greifst du auf die Tabelle Posts zu, und holst dir die wichtigsten daten ( Name, Auto, Beitrag id usw)

MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 20:36
von Transmigrasi
Das wäre natürlich eine Möglichkeit ;)
Allerdings würden dabei dann nicht die Threads berücksichtigt werden, die keine Antwort haben. Oder habe ich jetzt etwas falsch verstanden?

MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 20:41
von Metaman
doch die auch, denn wenn ich deine Tabelle richtig interpretiere, steht in Threads nur die überschrift, und der eigentliche Text des Postings in der posts Tabelle

oder nicht ???
wenn ja, dann solltest Du das eigentlich wissen wenn du das kleine Forum selber schreiben willst

MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 21:04
von Transmigrasi
Hallo,
nein, in "threads sind alle Daten zum ersten Beitrag enthalten, also auch der Text etc. In "posts" sind nur die Antworten.
Ich will mir eigentlich nur sparen, dass ich in "threads" ein weiteres Feld brauche, indem ich den Timestamp der letzten Antwort zu diesem Thema reinschreibe (nach welchem ich dann sortieren könnte). Dann soll nun etwas flexibler sein, denn wenn man mal ein paar Antworten löscht, müsste man sonst immer auch dieses Feld aktualisieren.

MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 21:26
von auftragslinker
versuchs mal so:

SELECT A.ueberschrift, A.id, B.thread, B.timestamp FROM threads AS A, posts AS B
WHERE B.thread=A.id ORDER BY B.timestamp DESC

MySQL: Sortierung nach letzter Antwort

Verfasst: 11.10.2005, 21:40
von Transmigrasi
Hallo,

das ist ja eigentlich das gleiche wie in meinem ersten Post.
Bei der Abfrage bekomme ich für jede Antwort einmal den ThreadTitel als Ergebnis (so dass ich dann im Ergebnis bei 20 Antworten 20 mal den Thread geliefert bekomme). Das könnte ich dann natürlich gruppieren, allerdings ist dann die Reihenfolge nicht mehr richtig :wink:
Außerdem werden so die Threads, die keine Antwort haben, nicht berücksichtigt.

Trotzdem schonmal vielen Dank für eure Hilfe :)
Gruß
Transmigrasi

MySQL: Sortierung nach letzter Antwort

Verfasst: 12.10.2005, 20:31
von Transmigrasi
Niemand mehr eine Idee?