Hi,

I am trying to search against multiple mySQL tables, Can any one point me to where I am wrong ?

Below is my query, and my DB structure.

PHP Code:
SELECT 
    categories
.name AS category
    
categories.id AS category_id
    
host_types.name AS host_type
    
host_types.id AS host_type_id
    
hosts.name AS host
    
hosts.id AS host_id
    
products.name as name
    
products.id AS product_id
    
products.keywords as keywords
    
products.description AS description
    
products.quantity AS quantity
    
products.price AS price
    
products.uid as catalgue 
  MATCH
(categories.nameAGAINST('search term') as cscore
  
MATCH(host_types.nameAGAINST('search term') as htscore,
  
MATCH(hosts.nameAGAINST('search term') as hscore,
  
MATCH(products.nameproducts.keywordsproducts.descriptionproducts.uid)
    
AGAINST('search term') as score
FROM products
LEFT JOIN hosts ON products
.host_id hosts.id
LEFT JOIN host_types ON hosts
.host_id host_types.id
LEFT JOIN categories ON host_types
.category_id categories.id
WHERE
  MATCH
(categories.nameAGAINST('search term') OR
  
MATCH(host_types.nameAGAINST('search term') OR
  
MATCH(hosts.nameAGAINST('search term') OR
  
MATCH(products.nameproducts.keywordsproducts.descriptionproducts.uid)
    
AGAINST('search term')
ORDER BY score DESC 
PHP Code:
CREATE TABLE `categories` (
  `
idint(5unsigned NOT NULL auto_increment,
  `
display_orderint(5unsigned default NULL,
  `
namevarchar(64) default NULL,
  `
last_modifiedtimestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  
PRIMARY KEY  (`id`),
  
UNIQUE KEY `order` (`display_order`),
  
FULLTEXT KEY `full_name` (`name`)
ENGINE=MyISAM AUTO_INCREMENT=DEFAULT CHARSET=latin1;

CREATE TABLE `host_types` (
  `
idint(5unsigned NOT NULL auto_increment,
  `
category_idint(5unsigned default NULL,
  `
display_orderint(5unsigned default NULL,
  `
namevarchar(64) default NULL,
  `
last_modifiedtimestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  
PRIMARY KEY  (`id`),
  
UNIQUE KEY `order` (`category_id`,`display_order`),
  
FULLTEXT KEY `full_name` (`name`)
ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=latin1;


CREATE TABLE `hosts` (
  `
idint(5unsigned NOT NULL auto_increment,
  `
host_idint(5unsigned default NULL,
  `
display_orderint(5unsigned default NULL,
  `
namevarchar(64) default NULL,
  `
last_modifiedtimestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  
PRIMARY KEY  (`id`),
  
UNIQUE KEY `order` (`host_id`,`display_order`),
  
FULLTEXT KEY `full_name` (`name`)
ENGINE=MyISAM AUTO_INCREMENT=DEFAULT CHARSET=latin1;


CREATE TABLE `products` (
  `
idint(11unsigned NOT NULL auto_increment,
  `
host_idint(5unsigned default NULL,
  `
display_orderint(5unsigned default NULL,
  `
uidvarchar(10) default NULL,
  `
namevarchar(128) default NULL,
  `
keywordstext,
  `
descriptiontext,
  `
pricedecimal(10,2) default NULL,
  `
quantityint(11unsigned default NULL,
  `
last_modifiedtimestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  
PRIMARY KEY  (`id`),
  
FULLTEXT KEY `full_name` (`name`,`keywords`,`description`,`uid`)
ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=latin1