SELECT id, login, email FROM diaries a JOIN (SELECT diary_id as di, MAX(id,asd,MAX(asdd)) as kek FROM posts p group by diary_id ) gg ON a.id = gg.di WHERE EXISTS (SELECT * FROM asd) ORDER BY gg.kek desc