Hallo,
ich habe ein Problem mit der „DISTINCT“-Abfrage bzw. mit dem, was ich damit eigentlich erreichen will.
Ich möchte eine Tabelle darstellen, die folgenden Inhalt anzeigt:
Titel | Autor | Datum | letzter Beitrag | Datum
---------|---------|---------|-----------------|-------
topic | user | created | user | created
thread | thread | thread | antworten | antworten
Folgende drei Tabellen bilden die Grundlage für meine Abfrage:
foren
id | name | inhalt
---|------|--------
thread
id | fid | topic | user | created
---|-----|-------|------|--------
antworten
id | tid | fid | user | topic | text | created
---|-----|-----|------|-------|------|--------
Meine Abfrage, um die obige Tabelle darzustellen ist die folgende:
select a.id, a.tid, a.fid, a.user, a.created, t.id, t.topic, t.user, t.created
from antworten a, thread t
where a.fid=$fid and a.tid=t.id
order by a.id desc
Das ganze soll letztendlich ein Forum werden, wo in dieser Threadübersicht der Thread als erstes angezeigt werden soll, der die letzte Antwort erhalten hat.
Leider wird mir bei obiger Abfrage zwar die Threads nach Antwort sortiert, aber der Threadtitel wird immer wiederholt. Sieht dann etwa so aus:
Titel | Autor | Datum | letzter Beitrag | Datum
-----------|---------|-----------|-----------------|-------
Testtitel | user1 | 01.01.05 | user25 | 02.02.05
Testtitel | user1 | 01.01.05 | user99 | 28.01.05
Neuer Test | user99 | 28.01.05 | user51 | 25.01.05
Testtitel | user1 | 01.01.05 | user51 | 24.01.05
Wie kann ich jetzt die Abfrage über die beiden Tabellen so gestalten, dass die doppelten „Testtitel“ nicht angezeigt werden?! Mit Distinct kann man irgendwie wohl nur ein Argument überprüfen und nicht eins von 9, wie ich es hier tue…
Hat jemand ne Idee?! Quasi „zeige immer den neuesten Beitrag zuerst an“…
Grüsse
schuelsche