Altså hvis du har en artikeltabel og en bedoemmelsestabel og de er koblet sammen af artikel_id så noget i stil med:
SELECT a.*, AVG(b.karakter) AS gennemsnit FROM artikler AS a INNER JOIN bedoemmelser AS b ON a.id = b.artikel_id GROUP BY b.karakter ORDER BY gennemsnit DESC LIMIT 2
SELECT a.*, AVG(b.karakter) AS gennemsnit FROM artikler AS a INNER JOIN bedoemmelser AS b ON a.id = b.artikel_id GROUP BY b.artikel_id ORDER BY gennemsnit DESC LIMIT 2
Er i øvrigt pludselig i tvivl om man kan order by på den :D
CREATE TABLE `artikler` ( `id` int(10) NOT NULL auto_increment, `overskrift` varchar(255) character set latin1 NOT NULL default '', `tekst` longtext character set latin1 NOT NULL, `forfatter` int(10) NOT NULL default '0', `tid` datetime NOT NULL default '0000-00-00 00:00:00', `godkendt` varchar(255) character set latin1 NOT NULL default '', `ip` varchar(255) character set latin1 NOT NULL default '', `billede` varchar(255) character set latin1 NOT NULL default '', `laest` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci AUTO_INCREMENT=8 ;
Sådan ser artikel kommentar strukturen ud:
CREATE TABLE `artikel_kommentarer` ( `id` int(10) NOT NULL auto_increment, `idid` int(10) NOT NULL default '0', `forfatter` int(10) NOT NULL default '0', `vurdering` int(10) default '0', `kommentar` text NOT NULL, `ip` varchar(255) NOT NULL default '', `tid` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
Hvor vurdering er vurderingen fra 1-5 og idid er artiklens id
SELECT a.*, AVG(b.karakter) AS gennemsnit FROM artikler AS a INNER JOIN artikel_kommentarer AS b ON a.id = b.idid GROUP BY b.idid ORDER BY gennemsnit DESC LIMIT 2
SELECT a.*, AVG(b.vurdering) AS gennemsnit FROM artikler AS a INNER JOIN artikel_kommentarer AS b ON a.id = b.idid GROUP BY b.idid ORDER BY gennemsnit DESC
SELECT a.*, AVG(b.vurdering) AS gennemsnit FROM artikler AS a INNER JOIN artikel_kommentarer AS b ON a.id = b.idid GROUP BY b.idid ORDER BY gennemsnit DESC LIMIT 3
SELECT a.*, AVG(b.vurdering) AS gennemsnit FROM artikler AS a INNER JOIN artikel_kommentarer AS b ON a.id = b.idid GROUP BY b.idid HAVING DATE_SUB(CURDATE(),INTERVAL 14 DAY) <= a.tid ORDER BY gennemsnit DESC LIMIT 3
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.