Het klinkt alsof je een FULLTEXT-overeenkomstige expressie moet gebruiken in je join-voorwaarde.
Ik heb nog nooit een fulltext-overeenkomst gebruikt in een join-voorwaarde, dus ik weet niet zeker of dit zal werken, maar hypothetisch zou dit het kunnen doen:
SELECT DISTINCT c.*
FROM corpuses c JOIN searches s
ON (MATCH(c.title, c.body) AGAINST (s.term));
Oké, ik heb het geprobeerd met behulp van uw tabeldefinities en enkele voorbeeldgegevens uit de MySQL-handleiding. Hier is een zoekopdracht die werkt (getest met MySQL 5.1.30):
SELECT *
FROM corpuses
WHERE MATCH(title, body)
AGAINST ( (SELECT GROUP_CONCAT(term SEPARATOR ' ') FROM searches)
IN BOOLEAN MODE);