 <p>Here is how I solved the problem, just in case somebody has a similar problem:</p> <p>Take another approach, instead of joining first, then searching I chose to search first, then to join:</p> <pre><code> #INSTEAD OF COALESCE(tr2.text, tr1.text) AS description #AND MATCH(description) AGAINST(?) AS relevance_description #USE GREATEST( MATCH(tr2.text) AGAINST(?), MATCH(tr1.text) AGAINST(?) ) AS relevance_description </code></pre>