我有这个问题:
我有tableA和tableB
tableB需要在某个字段中获取tableA的ID。
tableB和tableA有一个公共字段'email'
我试过这个
Update tableB SET tableB.reference = (Select a.id from tableA a, tableB b where a.email = b.email)
不幸的是,当我运行查询时,它说我无法为FROM子句中的更新指定目标'tableB'。
知道如何解决这个问题或运行这样的查询吗?
答案 0 :(得分:1)
更新tableB SET tableB.id =(从tableA a中选择a.id,tableB b,其中a.email = b.email)
答案 1 :(得分:1)
您应该在更新tableA
时尝试更新tableB
,并且在您的子选择中也不需要tableB
:
UPDATE tableB SET reference = (SELECT id FROM tableA WHERE email = tableB.email)
答案 2 :(得分:1)
winrm quickconfig
或另一个:
UPDATE tableA, tableB
SET tableB.id = tableA.id
WHERE tableA.email = tableB.email
您的查询也是可能的,但需要修复它:
UPDATE tableB
INNER JOIN tableA USING (email)
SET tableB.id = tableA.id