以上图片是巴士路线表,
巴士路线像这样: -
纽约>马来亚路>金斯敦路>新城
但是我想得到如下结果:
结果是乘客可能使用公共汽车到目的地的列表
我正在使用MySql
答案 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
答案 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