Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tutorial de auto-junção nº 10 no sqlzoo


Minha solução para este problema:Eu dividi o problema em dois.

Agora ambas as tabelas S e E terão rotas comuns, e eu obtenho todas essas rotas comuns juntando as subconsultas, usando os ids de cada tabela. E.num, E.company) usei 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)