Hi all

I'm working on a book database with some special requirements. Each book is associated 
with some keywords and put into a category. Category 0 is special, as this is 
"Unsorted", i.e. not associated with a category (which most books are at the moment).

For thei query, let's simplify the structure and define it as follows:
CREATE TABLE books (
  bookID mediumint(8) unsigned NOT NULL auto_increment,
  title varchar(200) NOT NULL default '',
  category mediumint(9) default '0',
  score mediumint(9) NOT NULL default '0',
  PRIMARY KEY  (bookID)
) TYPE=MyISAM AUTO_INCREMENT=1;


With each book, there is also a score field which represents the "rating" of a book, 
therefore the higher the better.

Now I would like to construct a query which does the following:
    * Return all books that match a requested keyword
        * All matching books from category 0
        * Only one book for each category >0 if there is a match with the keyword (and 
if so, the one with the highest score)
    * Order the books by score

Any idea and help?

Thanks a lot
cu
reto

Reply via email to