select b.城市名 起始城市,c.城市名 终点城市
from road a,city b,city c
where a.startcityId=b.cityId and a.endcityId=c.cityId
其实和普通的关联查询一样
就是路线表里的起始城市和city里的关联一次,终点城市再和city里的关联一次
--补充--
select b.城市名 起始城市,c.城市名 终点城市
from road a
inner join city b
on a.startcityId=b.cityId
inner join city c
on a.endcityId=c.cityId
把startcityId和endcityId 分别关联一个city表就可以了
SQL如下:road表映射为a,两个city 表分别映射为b和c
select a.id,a.roadname,b.cityname as startcity,c.cityname as endcity
from road a,city b,city c
where a.startcityId=b.cityId and a.endcityId=c.cityId
order by a.id