Sql 将多个字段连接到另一个表中的一个字段

Sql 将多个字段连接到另一个表中的一个字段,sql,oracle,Sql,Oracle,我有两张桌子: t普通 tblPlaces 我想执行一个,其中tbliteneraly=1以查看结果集: Place1 | Place2 | Place3 | Austria | Germany | Austria | 现在我的方向是 SELECT tblPlaces.PlaceName FROM tblPlaces JOIN tblPlaces.PlaceName ON tblItinerary.Place1 = tblPlaces.PlaceName JOIN tblPlac

我有两张桌子:

t普通 tblPlaces 我想执行一个
,其中tbliteneraly=1
以查看结果集:

Place1  | Place2  | Place3  |
Austria | Germany | Austria |
现在我的方向是

SELECT tblPlaces.PlaceName
 FROM tblPlaces
 JOIN tblPlaces.PlaceName
 ON tblItinerary.Place1 = tblPlaces.PlaceName
 JOIN tblPlaces.PlaceName
 ON tblItinerary.Place2 = tblPlaces.PlaceName
 JOIN tblPlaces.PlaceName
 ON tblItinerary.Place3 = tblPlaces.PlaceName
 WHERE tblItinerary.ID = 1;

这个想法是正确的,但也有一些错误:要多次连接一个表,应该为每个表使用唯一的别名。此外,您还没有在任何地方实际加入
tblitinary
,并且您的加入语法不正确(您尝试加入
tblPlaces.PlaceName
而不是
tblPlaces
)。请尝试以下操作:

select p1.PlaceName as Place1
     , p2.PlaceName as Place2
     , p3.PlaceName as Place3
from tblItinerary i
join tblPlaces p1 on i.Place1 = p1.ID
join tblPlaces p2 on i.Place2 = p2.ID
join tblPlaces p3 on i.Place3 = p3.ID
where i.ID = 1;

如果要多次加入表,则必须为加入的表添加别名。Oracle。抱歉。imo将不会与
p1.PlaceName的“列别名”混淆。PlaceName为PlaceName1
等。当前的
Place1
列别名与导致“混淆”的其他数据项匹配?代码是正确的。我稍后将删除此评论。@RyanVincent:也许你是对的,但我只是坚持提供的所需输出。所以不要删除你的评论,它应该澄清可能的混淆。
SELECT tblPlaces.PlaceName
 FROM tblPlaces
 JOIN tblPlaces.PlaceName
 ON tblItinerary.Place1 = tblPlaces.PlaceName
 JOIN tblPlaces.PlaceName
 ON tblItinerary.Place2 = tblPlaces.PlaceName
 JOIN tblPlaces.PlaceName
 ON tblItinerary.Place3 = tblPlaces.PlaceName
 WHERE tblItinerary.ID = 1;
select p1.PlaceName as Place1
     , p2.PlaceName as Place2
     , p3.PlaceName as Place3
from tblItinerary i
join tblPlaces p1 on i.Place1 = p1.ID
join tblPlaces p2 on i.Place2 = p2.ID
join tblPlaces p3 on i.Place3 = p3.ID
where i.ID = 1;