SELECT * FROM ((SELECT *,1.5 as rank, _posts.feed_id as fid, MATCH (_feeds.name) AGAINST ('terre') as matcher FROM _posts INNER JOIN _feeds USING(feed_id) WHERE MATCH (_feeds.name) AGAINST ('terre') ) UNION(SELECT *,1.4 as rank, _posts.feed_id as fid, MATCH (_posts.title ) AGAINST ( 'terre') as matcher FROM _posts INNER JOIN _feeds USING(feed_id) WHERE MATCH (_posts.title ) AGAINST ( 'terre') ) UNION(SELECT *,1.2 as rank, _posts.feed_id as fid, MATCH (_feeds.site_url, _feeds.description) AGAINST ('terre') as matcher FROM _posts INNER JOIN _feeds USING(feed_id) WHERE MATCH (_feeds.site_url, _feeds.description) AGAINST ('terre') ) UNION(SELECT *,1 as rank, _posts.feed_id as fid, MATCH (_posts.content, _posts.enclosure) AGAINST ('terre') as matcher FROM _posts INNER JOIN _feeds USING(feed_id) WHERE MATCH (_posts.content, _posts.enclosure) AGAINST ('terre') )ORDER BY rank*matcher DESC) as allsearchGROUP BY allsearch.fid ORDER BY rank*matcher DESC