Hallo
ich bin grad dabei für mein Projekt ein kleines forum zu bauen, allerdings habe ich ein paar probleme mit den SQL abfragen.
folgendes db konstrukt:
tabelle categorien: id,name,benutzerlevel
tabelle forum: id,cat_id,name
tabelle topics: id,forum_id,name,user_id,erstellzeit
tabelle posts: id,topic_id,user_id,erstellzeit
die eben über die jeweiligen ids miteinander verknüpft werden sollen.
wenn ich jetzt die forenübersicht erstellen möchte soll das in etwa so aussehen:
bis dahin kein problem, die abfrage dazu sieht folgendermaßen aus:
wie kann ich jetzt aber auch absichern, dass ich als user_id und topic.name bei dem left outer join auch immer den letzten beitrag bekomme, und nicht irgend einen?
ich bin grad dabei für mein Projekt ein kleines forum zu bauen, allerdings habe ich ein paar probleme mit den SQL abfragen.
folgendes db konstrukt:
tabelle categorien: id,name,benutzerlevel
tabelle forum: id,cat_id,name
tabelle topics: id,forum_id,name,user_id,erstellzeit
tabelle posts: id,topic_id,user_id,erstellzeit
die eben über die jeweiligen ids miteinander verknüpft werden sollen.
wenn ich jetzt die forenübersicht erstellen möchte soll das in etwa so aussehen:
Code:
---------------------------------------------------------
| categoriename |
---------------------------------------------------------
| | name des forums | beitragszähler | letzter post|
---------------------------------------------------------
| | name des forums | beitragszähler | letzter post|
---------------------------------------------------------
bis dahin kein problem, die abfrage dazu sieht folgendermaßen aus:
Code:
SELECT
categorie.name as cat,forum.name,forum.id,topics.name,posts.user_id
FROM
board_cat as categorie
INNER JOIN
board_forum as forum
ON
categorie.id = forum.cat_id
LEFT OUTER JOIN
board_topics as topics
ON
topics.forum_id = forum.id
LEFT OUTER JOIN
board_posts as posts
ON
topics.id = posts.topic_id
wie kann ich jetzt aber auch absichern, dass ich als user_id und topic.name bei dem left outer join auch immer den letzten beitrag bekomme, und nicht irgend einen?