Prova questa query e dimmi se è quello che volevi ottenere.

codice:
select id_commento,
max(case when tab = 1 then data_commento else null end) as data_news,
max(case when tab = 2 then data_commento else null end) as data_ricette,
max(case when tab = 1 then nome_utente else null end) as nome_news,
max(case when tab = 2 then nome_utente else null end) as nome_ricette,
max(case when tab = 1 then email_utente else null end) as mail_news,
max(case when tab = 2 then email_utente else null end) as mail_ricette,
max(case when tab = 1 then ip_address else null end) as ip_news,
max(case when tab = 2 then ip_address else null end) as ip_ricette,
max(case when tab = 1 then commento_news else null end) as commento_news,
max(case when tab = 2 then commento_news else null end) as commento_ricette
from (
select *,1 as tab from commenti_news
union 
select *,2 as tab from commenti_ricette
) as tab
group by id_commento