我的问题是我得到2表1是教练,1是工具
我想通过使用registNo将教练“Will Smith”的工具更改为10。 然而,我的代码改变了每个人的工具,但不仅仅是史密斯的一个。
insert into coach values ('c2','will','smith',5)
insert into tool values ('10', 'R123')
UPDATE coach
SET toolNo = t.toolNo
From coach c, tool t
WHERE t.registNo = 'R123'
AND c.forename ='Will'
AND c.surname = 'smith';
答案 0 :(得分:1)
在加入UPDATE语句时,您只需要列出要在FROM语句中加入的表,但是要更新的表已经在SET
之前的查询顶部说明了。< / p>
此外,根据此SO question,您必须使用旧学校的加入方法而不使用ON
子句。
UPDATE coach
SET coachtoolNo = t.toolNo
FROM tool t
WHERE t.registNo = 'R123'
AND coach.forename ='Will'
AND coach.hsurname = 'smith';
你在问题中的上述内容是Coach和Tool之间的交叉连接,然后再与Coach交叉连接,导致每条记录都更新。