Моето решение на този проблем:разделих проблема на две.
Сега и двете таблица S и E ще имат общи маршрути и аз получавам всички тези общи маршрути, като се присъединя към подзаявките, използвайки идентификаторите на всяка таблица. Тъй като има дублиращи се маршрути (същите:S.num, S.company, stops.name, E.num, E.company) използвах DISTINCT.
SELECT DISTINCT S.num, S.company, stops.name, E.num, E.company
FROM
(SELECT a.company, a.num, b.stop
FROM route a JOIN route b ON (a.company=b.company AND a.num=b.num)
WHERE a.stop=(SELECT id FROM stops WHERE name= 'Craiglockhart')
)S
JOIN
(SELECT a.company, a.num, b.stop
FROM route a JOIN route b ON (a.company=b.company AND a.num=b.num)
WHERE a.stop=(SELECT id FROM stops WHERE name= 'Sighthill')
)E
ON (S.stop = E.stop)
JOIN stops ON(stops.id = S.stop)