Select * ile having veya group by kullanamazsın. Aggreage function hatası alırsın.
Şu şekilde dene bakalım.
SELECT derivedtable.id, derivedtable.newscore FROM (
select column1,column2,column3 match(sutun1,sutun2) against('aranan' IN BOOLEAN MODE) AS newscore FROM tablo1 where match(sutun1,sutun2) against('aranan' IN BOOLEAN MODE)
union
select column1,column2,column3 match(sutun1,sutun2) against('aranan' IN BOOLEAN MODE) AS newscore FROM tablo2 where match(sutun1,sutun2) against('aranan' IN BOOLEAN MODE)
) as derivedtable order by derivedtable.newscore DESC group by derivedtable.id, derivedtable.newscore limit 20