Du kan oprette en 'materialiseret visning'.http://en.wikipedia.org/wiki/Materialized_view
dybest set en tabel, der er resultaterne af JOIN, og opret et fuldtekstindeks på det.
CREATE TABLE materialized (FULLTEXT idx (user_name,department_name))
SELECT u.id,user_name,department_name
FROM users u INNER JOIN departments d ON (d.id = dept_id)
Du kan derefter køre forespørgsler på den tabel i stedet..
SELECT * FROM materialized WHERE MATCH(user_name,department_name) AGAINST('test' IN BOOLEAN MODE)
men...
Du bliver nødt til at opdatere tabellen med jævne mellemrum (eller når de underliggende tabeller opdateres) - det nemmeste er bare at DROP
og genskab - Eller du kan bruge TRUNCATE
derefter INSERT INTO ... SELECT ... FROM ...
format.
(mere komplicerede skemaer involverer triggere til at holde 'visningen' opdateret, eller endda se binlogen og genafspille opdateringer mod 'visningen')