Zum Inhalt springen

SQL Abfrage - Forum


Danz

Empfohlene Beiträge

Hallo,

kann mir mal einer einen Tipp geben:

ich hab eine Forum, recht einfach:

2 Tabellen:

forum_comments

forum_thread

genauer Aufbau der Tabellen:

forum_comments:

id_comments

id_thread

id_person

date

message

forum_thread:

id_thread

id_person

date

topic

ich brauch jetzt eine SQL Abfrage, welche mir alle Themen ausgibt SORTIERT nach dem neuesten Kommentar IN EINEM THREAD, also so, wie es in einem Forum üblich ist.

Aber irgendwie komm ich da nicht weiter :/

jemand eine Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

jein

genau das ist mein problem - die abrage, so wie du es vorschlägst, hatte ich auch schon -> gibt aber alle Beiträge aus ,d.h. zu jedem Thread x comments, genau da liegt eben mein problem, ich möchte ja zu jedem thread nur den comment mit dem größten datum/id...

noch mehr Ideen? :)

trotzdem schon mal danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

...oder mit einem weiteren Sub-Select nach dem größtmöglichen Datum...

klingt gut, aber wie meinst du das genau? also wie soll der SQL Befehl aussehen? ich probiert schon seit n Weilchen, aber es will noch nicht so reht klappten :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

aaaaaaaaaahh ich hab's :bimei

SELECT * , MAX( id_comments ) a

FROM forum_comments

GROUP BY `id_thread`

ORDER BY `id_thread` DESC

das wars *G* man hätte ich eben mal an das grundlegend-einfache-group-by Verhalten entsinnen sollen :mod:

torztzdem DANKE!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Subselects sind bah *g*, behaupte ich mal einfach in den Raum.

Hab das, wenn ich mich richtig erinnere, bei mir Scriptseitig (PHP) nicht vom SQL her gelöst. Also von jedem Thema den neusten Beitrag in ein Array, und das ganze dann nach Datum sortiert.

Wenn du nicht vorhast 300.000 Themen zusortieren, sollte das ok sein... ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

HEUREKA!!! es geht!

dank eine Kolegen haben wir es geschafft, eine einzige SQL Abfrage draus zu zimmern:

SELECT *

FROM forum_thread AS ft

LEFT JOIN (

SELECT id_thread, max( id_comments ) AS max_id_comments

FROM forum_comments

GROUP BY forum_comments.id_thread

) AS sub ON sub.id_thread = ft.id_thread

LEFT JOIN forum_comments AS fc ON sub.max_id_comments = fc.id_comments

ORDER BY fc.id_comments DESC

doll ne? *G*

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...