CREATE TABLE `table1` ( `threadid` int(10) unsigned NOT NULL default '0', `userid` int(10) unsigned NOT NULL default '0', `cntry` char(3) NOT NULL default '', `cntryLONG` varchar(255) NOT NULL default '', `name` text NOT NULL, `status` tinyint(2) NOT NULL default '1', `secforum` int(11) NOT NULL default '0', PRIMARY KEY (`threadid`) ) TYPE=MyISAM; INSERT INTO `table1` VALUES (1, 2, ,'Es', 'Spain', 'example1', 0, 0); INSERT INTO `table1` VALUES (2, 2, ,'Es', 'Spain', 'example1', 0, 1); INSERT INTO `table1` VALUES (3, 1, ,'Us', 'United States', 'example2', 0, 1); INSERT INTO `table1` VALUES (79, 4, ,'Gb', 'United Kingdom', 'example2', 0, 0); INSERT INTO `table1` VALUES (6, 1, ,'Us', 'United States', 'example3', 0, 1); SELECT thread.threadid, table1.threadid, table1.name, table1.cntry, table1.cntryLONG, table1.secforum FROM `table1`, `thread` WHERE forumid = 13 AND thread.threadid = table1.threadid OR forumid = 25 AND thread.threadid = table1.threadid GROUP BY name ORDER BY table1.threadid DESC LIMIT 0,50 -- Solution with MySQL 4.1 or better: SELECT table1.threadid , table1.name , table1.cntry , table1.cntryLONG , table1.secforum FROM table1 JOIN ( SELECT table1.name , MAX(table1.secforum) secforum FROM table1 GROUP BY name ) v1 ON table1.name=v1.name AND table1.secforum=v1.secforum ;