Utilisez une liste déroulante près de la saisie de texte de recherche pour sélectionner une catégorie ou plusieurs cases à cocher pour voir quelle union vous auriez à faire ? Je vous recommanderais Sphinx http://sphinxsearch.com/
Essayez
SELECT 1 as type,tname AS keyword FROM t
UNION
SELECT 2 as type,sname AS keyword FROM sub
UNION
SELECT 3 as type,cname AS keyword FROM c
UNION
SELECT 4 as type,iname AS keyword FROM i
foreach($results as $result)
{
switch($result['type'])
{
case 1:
$cat_1[]=$result;
break;
case 2:
$cat_2[]=$result;
break;
}
}