Чтобы создать таблицу, аналогичную вашей, я использовал:
CREATE TABLE resource_subjects (
res_id int(11),
sub_id int(11)
);
INSERT INTO resource_subjects VALUES
(1,1),
(1,2),
(1,3),
(1,4),
(1,5),
(2,1),
(2,2),
(2,3),
(3,1),
(3,4);
И затем запрос, который вы можете использовать:
SELECT t2.res_id 'first', t1.res_id 'second', COUNT(t1.sub_id)
FROM resource_subjects t1
JOIN resource_subjects t2 ON t1.res_id > t2.res_id AND t1.sub_id = t2.sub_id
GROUP BY 1,2
Обратите внимание, что мой resource_id является реальным идентификатором (целое число), а не строка, которая допускает условие «больше, чем» в предложении ON.