Veröffentlicht 5. Juni 200520 j 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?
5. Juni 200520 j Vielleicht so: select forum_thread.toppic from forum_thread, forum_comments where forum_comments.id_thread=forum_thread.id_thread order by forum_comments.date Frank
5. Juni 200520 j 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!
5. Juni 200520 j welche datenbank? welche version? sonst select top 1 * from oder limit 0,1 mit order by
6. Juni 200520 j ...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
6. Juni 200520 j 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!
6. Juni 200520 j 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... ^^
6. Juni 200520 j *******e, dass ist es noch nicht ganz, so erhällt man zwar das thema und die dazugehörige MAX(id_comments) jedoch hab ich's noch nicht hinbekommen die id_person, des max.id_comments zu ermitteln ....arg
6. Juni 200520 j 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*
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.