我有两个名为BusCity
和BusPath
的表,BusCity
有cities
和BusPath
存储路径。 BusPath
有两列DepId
和DesId
。
我想加入这些表并得到城市名称。
这是我的代码示例:
with cte as (
select
BusPath.DepId,
BusCity.CityName as 'مبدا'
from BusPath
inner join BusCity on BusCity.Id =BusPath.DesId
), ctf as(
select
BusPath.DesId,
BusCity.CityName as 'مقصد'
from BusPath
inner join BusCity on BusCity.Id =BusPath.DepId)
select * from cte , ctf
答案 0 :(得分:0)
从此评论中
实际上我希望每列都有明显的连接
我知道你的问题是你有重复的问题。这是因为您在cte
和ctf
但我不知道为什么你只为获得城市名称而进行2次CTE ......
不仅仅是你想要做的吗?
select
P.DesId, Des.CityName as 'مقصد',
P.DepId, Dep.CityName as 'مبدا'
from BusPath P
inner join BusCity Dep on Dep.Id = P.DepId
inner join BusCity Des on Des.Id = P.DesId
答案 1 :(得分:-1)
您的代码中缺少第二次加入
select
P.DesId, Des.CityName as 'مقصد',
P.DepId, Dep.CityName as 'مبدا'
from BusPath P
left outer join BusCity Dep on Dep.Id = P.DepId
left outer join BusCity Des on Des.Id = P.DesId