如何解决更新查询的意外结果
我有两个数据库表mk34
和mk33
。这些驻留在SQL Server 2008 R2实例上。它们都有4列:
firstname varchar(24)
lastname varchar(25)
birthdate datetime
memo varchar(max)
我想用memo
中mk33
的值更新memo
中的mk34
列,其中名称和DOB相等。
我写了这个查询:
update [mk33].dbo.CHILD
set memo = mk34.memo
--select mk34.naam,mk34.geboortedatum,mk33.memo,mk34.memo as nieuw
from
(select lower(rtrim(ltrim(replace([Firstname],' ','') +replace([LastName],'')))) as naam,[Birthdate],memo from [mk34].dbo.CHILD) mk34
inner join
(select lower(rtrim(ltrim(replace([Firstname],memo from [mk33].dbo.CHILD) mk33
on mk34.naam = mk33.naam
and mk34.Birthdate = mk33.Birthdate
但是,mk33中的所有100k +记录都已更新为mk34.memo中的第一个值,因此mk33中的所有字段现在都相同了,即使那些不在联接中的字段也是如此。
而且我不知道如何.....如果我禁用了前两行并启用了选择,则可以看到查询返回了正确的数据。
我在这里想念什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。