Sorry, my bad. Here is a working solution
query:
SELECT p_title, count(p_id) as count
FROM `pages`
left join kw_t_p on p_id = p_nr
left join keyword on kw_id = kw_nr
where (kw_label = 'test1') or
(kw_label = 'test2') or
(kw_label = 'test3') or
(kw_label = 'test4') or
(kw_label = 'test5')
group by p_id
having count>=5
database:
--
-- Table structure for table `keyword`
--
-- Creation: Feb 20, 2007 at 12:34 PM
-- Last update: Feb 20, 2007 at 12:36 PM
--
CREATE TABLE `keyword` (
`kw_id` smallint(6) NOT NULL auto_increment,
`kw_label` text NOT NULL,
PRIMARY KEY (`kw_id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;
--
-- Dumping data for table `keyword`
--
INSERT INTO `keyword` (`kw_id`, `kw_label`) VALUES (1, 'test1'),
(2, 'test2'),
(3, 'test3'),
(4, 'test4'),
(5, 'test5'),
(6, 'test6');
-- --------------------------------------------------------
--
-- Table structure for table `kw_t_p`
--
-- Creation: Feb 20, 2007 at 12:35 PM
-- Last update: Feb 20, 2007 at 12:37 PM
--
CREATE TABLE `kw_t_p` (
`kw_nr` int(11) NOT NULL default '0',
`p_nr` int(11) NOT NULL default '0'
) TYPE=MyISAM;
--
-- Dumping data for table `kw_t_p`
--
INSERT INTO `kw_t_p` (`kw_nr`, `p_nr`) VALUES (1, 1),
(1, 2),
(2, 1),
(3, 1),
(4, 1),
(5, 1);
-- --------------------------------------------------------
--
-- Table structure for table `pages`
--
-- Creation: Feb 20, 2007 at 12:35 PM
-- Last update: Feb 20, 2007 at 12:36 PM
--
CREATE TABLE `pages` (
`p_id` int(11) NOT NULL auto_increment,
`p_title` text NOT NULL,
PRIMARY KEY (`p_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
--
-- Dumping data for table `pages`
--
INSERT INTO `pages` (`p_id`, `p_title`) VALUES (1, 'a test page'),
(2, 'an other test page');