Avatar billede danic Nybegynder
07. september 2003 - 14:53 Der er 2 kommentarer og
1 løsning

Hjælp til MySQL udtræk op imod to tabeller

Betragt nedenståne:

CREATE TABLE `threads` (
  ` threadid ` smallint(6) NOT NULL auto_increment,
  `topicid` smallint(6) NOT NULL default '0',
  `subject` varchar(128) NOT NULL default '',
  `views` smallint(4) NOT NULL default '0',
  `replies` smallint(5) NOT NULL default '0',
  `author` varchar(32) NOT NULL default '',
  `date` text NOT NULL,
  `timestamp` timestamp(14) NOT NULL,
  PRIMARY KEY  (`threadid`),
  KEY `topicid` (`topicid`),
  KEY `threadid` (`threadid`)
) TYPE=MyISAM AUTO_INCREMENT=25 ;

threadid er auto_increment og der bliver tildelt et unik nummer for hver threadid.

threadid findes også I tabellen posts, til hver postid er der en relation til threadid, således at der kan være flere posts inden for samme threadid.

CREATE TABLE ` posts ` (
  `topicid` smallint(6) NOT NULL default '0',
  `threadid` int(10) NOT NULL default '0',
  `postid` int(10) NOT NULL auto_increment,
  `author` varchar(32) NOT NULL default '',
  `message` text NOT NULL,
  `subject` varchar(250) NOT NULL default '',
  `date` text NOT NULL,
  `timestamp` timestamp(14) NOT NULL,
  PRIMARY KEY  (`postid`),
  KEY `topicid` (`topicid`),
  KEY `threadid` (`threadid`)
) TYPE=MyISAM AUTO_INCREMENT=43 ;

Jeg ønsker nu at hente de 5 sidste subject felter i tabellen posts ud fra timestamp, men de må ikke have samme `threadid`

Jeg har forsøgt denne her:

SELECT posts.subject,threads.threadid FROM posts,threads WHERE posts.threadid=threads.threadid GROUP BY threads.threadid ORDER BY posts.timestamp DESC LIMIT 0,5

Som giver dette resultat:

threadid 
24
23
22
21
20

Resultatet skulle have været:

threadid
22
24
20
23
22

Så den får ikke posts med??
Avatar billede erikjacobsen Ekspert
07. september 2003 - 15:23 #1
Prøv (utestet)

SELECT posts.subject,threads.threadid,max(posts.timestamp) as m FROM posts,threads WHERE posts.threadid=threads.threadid GROUP BY threads.threadid ORDER BY m DESC LIMIT 0,5
Avatar billede danic Nybegynder
07. september 2003 - 15:31 #2
Resultat:

subject  threadid  m 
Nyt design 22 20030907144307
test 24 20030830082653
Powerballs 20 20030816112425
test af forum 23 20030816100131
Pioneer DVD 21 20030816100054

det virker, 100 points til dig :) svar udbedes!
Avatar billede erikjacobsen Ekspert
07. september 2003 - 15:33 #3
ok ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester