在面试开发人员职位时,我被问到这个问题.
任务:在SQL Server表写入查询中存储飞行路线,该查询将查找从城市A到城市B的所有路线,无需转移,只需一次或两次转移.例如,你有路线:
| From | To
----------------------
Los Angeles London
Los Angeles New York
New York London
Los Angeles Seattle
Seattle Paris
Paris London
Run Code Online (Sandbox Code Playgroud)
您需要找到所有从洛杉矶到伦敦的接送路线.结果应该是这样的
Route
------------------------
Los Angeles->London
Los Angeles->New York->London
Los Angeles->Seattle->Paris->London
Run Code Online (Sandbox Code Playgroud)
我的解决方案是这样
select [From] + '->' + [To] as [Route] from Routes where [From] = 'Los Angeles' and [To] = 'London'
union
select r1.[From] + '->' + r1.[To] + '->' + r2.[To] as [Route] from Routes as r1
join Routes as r2 on r1.[To] = …Run Code Online (Sandbox Code Playgroud)