Използвайте падащо меню близо до въвеждането на текст за търсене, за да изберете квадратче за категория или множество, за да видите какво обединение трябва да направите? Бих ви препоръчал Sphinx http://sphinxsearch.com/
Опитайте
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;
}
}