Sql可能性路由目的地

时间:2013-12-05 03:41:37

标签: mysql sql

enter image description here

以上图片是巴士路线表, 巴士路线像这样: -
纽约>马来亚路>金斯敦路>新城

但是我想得到如下结果:

enter image description here

结果是乘客可能使用公共汽车到目的地的列表

我正在使用MySql

3 个答案:

答案 0 :(得分:3)

我认为你的图片有点不对,因为第一个注册表是要显示

    from_loc              to_loc
New York Street         Malaya Road

因此,您需要的查询是:

select a.loc_id from_loc_id, 
       b.loc_id to_loc_id, 
       a.loc_name from_loc,  
       b.loc_name to_loc,  
       a.route_id
  from routes a,
       routes b
 where a.loc_id < b.loc_id
order by a.loc_id, b.loc_id

我改变了名字。 在小提琴上看到它:http://sqlfiddle.com/#!2/4443a1/5

答案 1 :(得分:1)

试试这个

     Select  l1.location_Id as From_Loc_Id,
             l2.location_Id as To_Loc_Id,
             l1.location_name AS From_Loc,
             l2.location_name as To_Loc,
             l1.route_id as Route_id        
     from Location l1,Location l2
     Where l1.location_Id < l2.location_Id

SQL Fiddle http://sqlfiddle.com/#!2/aea86/2

答案 2 :(得分:1)

我相信你是基于路由制作这个表所以你必须使用route_id加入并在loc_id上使用条件以避免重复:

select a.loc_id from_loc_id, 
   b.loc_id to_loc_id, 
   a.loc_name from_loc,  
   b.loc_name to_loc,  
   a.route_id
from routes a inner join routes b 
  on a.route_id = b.route_id and a.loc_id < b.loc_id  
order by a.loc_id, b.loc_id