Вы можете самостоятельно присоединиться к таблице persons
для создания комбинаций авторов, затем принести статьи каждого человека, присоединив authpapers
один раз для каждого пользователя, и, наконец, отфильтровать подходящие статьи. Последний шаг - агрегирование и сортировка:
select p1.name as person1, p2.name person2, count(*) as amount
from persons p1
inner join persons p2 on p2.akey > p1.akey
inner join authpapers ap1 on ap1.akey = p1.akey
inner join authpapers ap2 on ap2.akey = p2.akey
where ap1.pkey = ap2.pkey
group by p1.akey, p2.akey
order by amount desc limit 5;
Обратите внимание, что вам не нужна таблица papers
для получения желаемых результатов.