ugrás a tartalomhoz

Friss fórumtémák kilistázása

Marcell · 2006. Okt. 3. (K), 20.26
Adott egy megvalósítandó fórumrendszer. Gondoltam most ráérek annyira, hogy 'csak egy maradhat' alapon mindent belezsúfolok egy lekérdezésbe, próbálok minden felesleges PHP sort és MySQL oszlopot minimalizálni.

Van két táblám, értelemszerűen az egyikben a fórumtémákat, a másikban a hozzászólásokat tárolom, a kettő között az átjáró a 'forumid' oszlop. Továbbá van egy felhasználókat tároló tábla, aminek most 2 oszlopa érdekes csak.
CREATE TABLE forumtemak (
   id SMALLINT UNSIGNED NOT NULL auto_increment,
   cim VARCHAR(50) NOT NULL default '',
   leiras TEXT NOT NULL,
   PRIMARY KEY (id)
);

CREATE TABLE hozzaszolasok (
    id SMALLINT UNSIGNED NOT NULL auto_increment,
    forumid SMALLINT unsigned NOT NULL,
    nev VARCHAR(50) NOT NULL default '',
    email VARCHAR(50) NOT NULL default '',
    comment TEXT NOT NULL,
    datum DATETIME NOT NULL default '0000-00-00 00:00:00',
    re SMALLINT default '0',
    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS juzerz (
   azonosito VARCHAR(20) NOT NULL,
   becenev VARCHAR (20),
   ...
   PRIMARY KEY (azonosito)
);
A célom táblázatosan megjeleníteni a témákat, a legfrissebbet legfelülre. Az alábbi lekérdezéssel próbálkoztam (a lényegre egyszerűsítve):
SELECT hozzaszolasok.*, forumtemak.*, juzerz.azonosito, juzerz.becenev FROM hozzaszolasok, forumtemak
   LEFT OUTER JOIN juzerz
   ON SUBSTRING(hozzaszolasok.nev, 2) = juzerz.azonosito
   WHERE hozzaszolasok.forumid = forumtemak.id 
   GROUP BY hozzaszolasok.forumid
   DESC
Mivel össze kell vonnom az ismétlődő fórumtémák hozzászólásait, a GROUP BY-t használom. Ez azonban (ahogy észrevettem) elölről csoportosít, ezért a témakörök első bejegyzését hagyja meg - nekem pedig pont ugye az utolsó kellene.

Olvastam, hogy adjak hozzá a SELECT-hez egy MAX() részt, de ha hozzáadtam, elég fura dolgokat tapasztaltam. Ezért inkább szeretném, ha Ti írnátok egy változatot, aztán összevetem az enyimmel és megpróbálom kideríteni, mit is szúrhattam el.