I agree with thorpe; perhaps a mod can move this thread if you ask nicely 😉
Anyway, try using the EXISTS keyword:
"SELECT * FROM (*3 tables*) WHERE id (*is already indexed) match like LIKE '%".$_POST['name']."%' AND EXISTS (SELECT * FROM index_table WHERE index_table.id = cars.id OR index_table.id = trucks.id OR index_table.id = boats.id)"
I'm not quite sure on this subquery:
SELECT * FROM index_table WHERE index_table.id = cars.id OR index_table.id = trucks.id OR index_table.id = boats.id
so you might want to debug that/check with someone else. What you're doing is basically trying to select rows in index_table where the id matches. I don't know exactly how you're searching, so i just tried to compare an id in index_table with an id in any of the 3 tables you mentioned.
Hope this helps, as I'm no SQL guru!
EDIT: Forgot to post a link to help you out too; here's MySQL's manual page on EXISTS and NOT EXISTS!