Sql 选择字段和联接子句

Sql 选择字段和联接子句,sql,db2,Sql,Db2,我有两张桌子,桌子a: - Original_Location - Units 和表B: - Original_Loc - Adjacent_Loc - Direction (up/down/left/right from original loc) 我的目标是返回原始位置、相邻位置、方向以及相邻loc处的单位数量。到目前为止,我只能从原始loc返回单位 以下是我到目前为止所做的尝试: Select Original_Location, Units, TableB.Adjacent_Loc,

我有两张桌子,桌子a:

- Original_Location
- Units
表B:

- Original_Loc
- Adjacent_Loc
- Direction (up/down/left/right from original loc)
我的目标是返回原始位置、相邻位置、方向以及相邻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

我的想法是,我可能需要在内部联接之前更改正在选择的字段,或者可能在原始位置=相邻位置上联接。

您的联接语法不正确。首先,您不需要从表B中“选择”任何内容,最初的选择是从连接的表(A和B)中获取数据,就像它们是一个表一样。其次,您需要指定要与哪些字段联接表

您的加入将类似于:-

From TableA Inner Join TableB
on TableA.Original_Loc = TableB.Original_Loc
一旦连接正确,就需要对TableA进行另一个连接以获得单位。这一次,您要将表B中相邻的_Loc连接到表A中的原始_位置,该位置将具有您需要的单位值

下面的示例使用别名来标识每个表(现在有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

你能提供你的表和列的含义吗?这个结构的目的是什么?@mostafa8026把一个位置想象成架子上的一个点。我想看看架子周围的每个地方有多少个单位。这仍然会从原始位置返回单位,对吗?我想把单位放在附近。