Hallo!
Ich habe ein Problem mit einer MySQL Abfrage.
Ich möchte folgendes realisieren:
*) Aus meiner Foren Tabelle (forum_forums) die ForumID (id), den Admin-Status (admin) den Forumnamen (title) und die Beschreibung (description)
*) aus meiner Posts Tabelle (forum_posts) die PostID (id), den Namen des Posters (name), den Zeitpunkt des Postings (datetime [ja, ich weiß ...]) und die TopicID des Posts (topic_id)
*) aus meiner Topic Tabelle den namen (topic)
holen.
Mein bester Versuch war dieser hier
--- MySQL Anfang ---
SELECT f.id, f.admin, f.title, f.description, t.topic AS lastpost_topic, p.name AS lastpost_name, p.datetime AS lastpost_datetime
FROM forum_forums AS f
LEFT JOIN (
SELECT forum_id, topic_id, name, `datetime`
FROM forum_posts
) AS p ON f.id = p.forum_id
LEFT JOIN (
SELECT id, topic
FROM forum_topics
ORDER BY id DESC
) AS t ON p.topic_id = t.id
--- MySQL Ende ---
Allerdings zeigt er mir dann alle Posts zu jedem Forum an und nicht nur den letzen.
Wenn ich jetzt die Abfrage bei den Posts abändere (LIMIT 1 hinzufüge)
--- MySQL Anfang ---
...
LEFT JOIN (
SELECT forum_id, topic_id, name, `datetime`
FROM forum_posts LIMIT 1
) AS p ON f.id = p.forum_id
...
--- MySQL Ende ---
dann erhalte ich nur den aller letzen Post von allen Foren und nicht den letzten Post von jedem Forum. Ich müsste also irgendwie LIMIT __anzahl der foren__ machen damit das funktionniert.
Ich habe vollstes Vertrauen in eure hilfe :)
PS: Wenn ihr mir auch sagen könnt, wie ich in dieser Abfrage auch die Anzahl der Topics und Posts mitliefern kann wäre das perfekt.
Lg,
Snafu