我有两个表, TableA:
- Original_Location
- Units
和 TableB:
- Original_Loc
- Adjacent_Loc
- Direction (up/down/left/right from original 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上联接。
答案 0 :(得分: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