Frage zuerst: Ist dein "Forum" ein echtes Forum oder nur ein Board? Je nachdem ist deine Frage nämlich komplex oder sehr komplex. Wenn ich mir deine Tabellen so ansehe, dann sieht es so aus, als ob du nur ein Board hast.
ja, ist ein board: www.aspbb.org
Dein Problem läßt sich ganz simpel dadurch lösen, dass du (was mir in deiner Datenstruktur auf den ersten Blick fehlt) ein Feld hinzufügst, in dem verzeichnet ist, auf welche andere Nachricht die jeweilige Antwort eine Nachricht ist.
Also zurZeit habe ich ja 2 verschiedene Tabellen dafür.
Eine Antwort (zu einem Thema) erkenne ich durch die Themen_ID, die in der Tabelle Antworten vorhanden ist)
Logischerweise haben Nachrichten, die ein neues Thema starten, dann keine Angabe in diesem Feld und können sehr leicht herausgefiltert werden (wenn du ein Board hast, reicht auch einfach ein simples Flag "ist neues Thema" vs. "ist Antwort").
Wie kriegst du denn derzeit alle Antworten entsprechend ihrer Aufreihung untereinander?
ich selektiere aus der antworten tabelle alle datensätze, die zu einem thema gehören
(select * from antworten where themen_Id = 1 order by antwort_datum)
Diese Vorgehensweise ist insofern auch besser, weil sie wesentlich performanter sein dürfte als irgendein JOIN. Das hilft dir zwar nicht beim Verstehen von INNER JOINs, aber es löst dein Problem. :)
- Sven Rautenberg
Vielen Dank für die antwort