Hallo
Dies ist mein erster Post hier, und dann gleich was komplexes Der Thementitel verrät nicht allzuviel, aber das kann man nicht gut abkürzen, also ich code grade an einem PHP/MySQL Forum und will bei der Themenansicht (wo man alle Themen in einem Forum ansehen kann) in einem Statement:
1. Alle Werte aus der bb_topics Tabelle auslesen
2. Den Namen des Erstellers aus der bb_members Tabelle auslesen
3. Den Namen des Erstellers des letzten Posts rauskriegen (ebenfalls aus bb_members)
Alles in einem Statement. Erstmal, geht das überhaupt?
Ich habe mit meinen mickrigen Kenntnissen über JOIN Kommandos mal das hier fabriziert, funktioniert gar nicht mal so schlecht, nur wird hier 2 mal derselbe Name für den Ersteller und den letzten Poster erkannt:
SELECT
bb_topics.*,
bb_members.name AS creator_name,
bb_members.name AS lastpost_creator_name
FROM bb_topics
LEFT JOIN bb_members AS t_creator ON bb_topics.creator=t_creator.id
LEFT JOIN bb_members ON bb_topics.lastpost_creator=bb_members.id
WHERE area_id='1' ORDER BY priority DESC, lastpost_time DESC
Das Forum sieht schon ziemlich gut aus udn hat schon recht viele Funktionen, ich bin grade nur noch am optimieren dun da kann ich mir 2 Datenbankaufrufe pro Topic sparen, wenn ich das in einem Statement mache.
Dies ist mein erster Post hier, und dann gleich was komplexes Der Thementitel verrät nicht allzuviel, aber das kann man nicht gut abkürzen, also ich code grade an einem PHP/MySQL Forum und will bei der Themenansicht (wo man alle Themen in einem Forum ansehen kann) in einem Statement:
1. Alle Werte aus der bb_topics Tabelle auslesen
2. Den Namen des Erstellers aus der bb_members Tabelle auslesen
3. Den Namen des Erstellers des letzten Posts rauskriegen (ebenfalls aus bb_members)
Alles in einem Statement. Erstmal, geht das überhaupt?
Ich habe mit meinen mickrigen Kenntnissen über JOIN Kommandos mal das hier fabriziert, funktioniert gar nicht mal so schlecht, nur wird hier 2 mal derselbe Name für den Ersteller und den letzten Poster erkannt:
SELECT
bb_topics.*,
bb_members.name AS creator_name,
bb_members.name AS lastpost_creator_name
FROM bb_topics
LEFT JOIN bb_members AS t_creator ON bb_topics.creator=t_creator.id
LEFT JOIN bb_members ON bb_topics.lastpost_creator=bb_members.id
WHERE area_id='1' ORDER BY priority DESC, lastpost_time DESC
Das Forum sieht schon ziemlich gut aus udn hat schon recht viele Funktionen, ich bin grade nur noch am optimieren dun da kann ich mir 2 Datenbankaufrufe pro Topic sparen, wenn ich das in einem Statement mache.
Kommentar