选择字段和连接子句

问题描述 投票:0回答:1

我有两个表,TableAU:

- Original_Location
- Units

和表:

- Original_Loc
- Adjacent_Loc
- Direction (up/down/left/right from original loc)

我的目标是返回相邻位置的原始位置,相邻位置,方向和单元数。到目前为止,我只能从原来的loc返回单位。

这是我到目前为止所尝试的:

Select Original_Location,
Units,
TableB.Adjacent_Loc,
TableB.Direction

From TableA

Inner Join

Select *
From TableB

On TableA.Original_Location = TableB.Original_Loc

我的想法是,我可能需要更改我在内连接之前选择的字段,或者可能需要连接到Original_Location = Adjacent_Loc。

sql db2
1个回答
1
投票

你的Join语法不对。首先,您不需要从表B中“选择”任何内容,您的初始SELECT将从连接表(A和B)中获取数据,就像它们是1个表一样。其次,您需要指定要与表连接的字段。

您的加入将是这样的: -

From TableA Inner Join TableB
on TableA.Original_Loc = TableB.Original_Loc

一旦你的联接正确,你需要再次加入TableA以获得单位。这次您将表B中的Adjacent_Loc加入表A中的Original_Location - 它将具有您需要的Units值。

我下面的示例使用别名来标识每个表(现在有2个对TableA的引用,因此需要单独标识它们)。因此,当您对TableA进行第二次连接时,它具有别名c,以区别于第一个TableA引用。然后,您需要从c中选择单位。

Select a.Original_Location, c.Units, b.Adjacent_Loc, b.Direction
From TableA a Inner Join TableB b On a.Original_Location = b.Original_Loc
inner join TableA c on b.Adjacent_Loc = c.Original_Location
© www.soinside.com 2019 - 2024. All rights reserved.