Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySQL: Sortierung nach letzter Antwort

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Transmigrasi
PostRank 1
PostRank 1
Beiträge: 24
Registriert: 28.03.2005, 20:59

Beitrag von Transmigrasi » 11.10.2005, 17:51

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 11.10.2005, 19:03

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)

Transmigrasi
PostRank 1
PostRank 1
Beiträge: 24
Registriert: 28.03.2005, 20:59

Beitrag von Transmigrasi » 11.10.2005, 20:36

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?

Metaman
PostRank 7
PostRank 7
Beiträge: 602
Registriert: 17.04.2004, 07:37
Wohnort: Wittenburg (Mecklenburg)

Beitrag von Metaman » 11.10.2005, 20:41

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

Transmigrasi
PostRank 1
PostRank 1
Beiträge: 24
Registriert: 28.03.2005, 20:59

Beitrag von Transmigrasi » 11.10.2005, 21:04

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.

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 11.10.2005, 21:26

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

Transmigrasi
PostRank 1
PostRank 1
Beiträge: 24
Registriert: 28.03.2005, 20:59

Beitrag von Transmigrasi » 11.10.2005, 21:40

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

Transmigrasi
PostRank 1
PostRank 1
Beiträge: 24
Registriert: 28.03.2005, 20:59

Beitrag von Transmigrasi » 12.10.2005, 20:31

Niemand mehr eine Idee?

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag