SQL设置了多个使用多个连接的列

时间:2018-02-25 21:29:13

标签: sql sql-server sql-server-2008

我有两张桌子,一张用于门科技,另一张用于将这些门技术分配到我们的商店。单个商店可以有多个门技术。技术人员都获得了一个ID,这就是它们存储在商店表中的方式。一个例子是GateTechA的ID为1。商店5的主门技术是1.当我显示它加入表格的信息并获得名称时,我可以一次设置一个,但是当我尝试做两个时,我得到错误。

下面的代码不起作用,但我认为最好描述我想要做的事情。在下面的例子中,我设置了商店31的推拉门和平开门技术。如果我只做一个,它可以工作,但是当我尝试做多个时,我会在进行相关时遇到失败,我认为这是我搞砸的地方。

非常感谢任何帮助。

update dbo.tblStoreTechAssignments
Set strDoorSliding = intGateKey, strDoorSwing = intGateKey
From dbo.tblGateTechs
JOIN
dbo.tblStoreTechAssignments on strGateTechName = 'Test Tech 2'
Join
dbo.tblStoreTechAssignments on strGateTechName = 'testtec3'
where intStoreNumber = 31

进一步解释 @GordonLinoff

有商店技术的表:

tblStoreTechAssignments
intStoreNumber | strDoorSliding | strDoorSwing
1                   100                  102
2                   103                  105
31                  105                  106

有技术的表:

 tblGateTechs
    strGateTechName | intGateKey
    Test Tech 2         100
    testtec3            102

运行update和tblStoreTechAsisgnements

intStoreNumber | strDoorSliding | strDoorSwing
31                   100              102

1 个答案:

答案 0 :(得分:1)

可能会有所帮助 -

update dbo.tblStoreTechAssignments
Set
    strDoorSliding = (select intGateKey from dbo.tblStoreTechAssignments where strGateTechName = 'Test Tech 2'),
    strDoorSwing = (select intGateKey from dbo.tblStoreTechAssignments where strGateTechName = 'testtec3')
From dbo.tblGateTechs
where intStoreNumber = 31