我希望将一个表(requester.rqgroup)中选定行的列设置为另一表(groups.grpnum)中选定列的值,一次更新一次。

当我运行此查询时:

更新请求者
SET rqgroup =(从组名称为“ Hosting Open Sys Engineering”的组中选择grpnum)
AND(Whererequesters.name LIKE'J.Smith')

已正确为J.Smith为名称的行设置了rqgroup值,但所有其他行的rqgroup值均设置为零。

有什么建议吗?
新年快乐,
乔纳·贾科洛尼(Jonah Giacalone)

最佳答案

您无需两次键入where,这就是使此奇怪的事情发生的原因。

运行此命令:

UPDATE requesters SET rqgroup = (SELECT grpnum from groups WHERE groupname like 'Hosting Open Sys Engineering') WHERE  requesters.name LIKE 'J. Smith')


另外,由于您的like语句用于查找具有准确输入的结果,而不是like,因此只需使用=

UPDATE requesters SET rqgroup = (SELECT grpnum from groups WHERE groupname = 'Hosting Open Sys Engineering') WHERE  requesters.name = 'J. Smith')


更快(我认为)

10-08 19:27