我需要通过匹配两个表中的ID字段,通过将文本数据与我的辅助表tblSecond中的Notes字段连接来更新我的表tblMain中的Notes字段。
我使用的是以下SQL:
UPDATE tblMain
SET tblMain.Notes = (tblMain.Notes + (SELECT DISTINCT Notes FROM tblSecond
WHERE tblSecond.ID = tblMain.ID))
但是我收到以下错误
子查询返回的值超过1。
可能是因为SELECT语句返回整个结果集。
我如何成功执行此操作?
答案 0 :(得分:1)
如果子查询返回的值超过1,则表示tblSecond包含相应ID的多个条目。所以我建议先检查一下你的数据。
更新本身也可以使用from
子句编写,类似这样(未经测试)
update tblMain
set Notes = a.Notes + b.Notes
from
tblMain a
inner join tblSecond b on a.Id = b.Id
答案 1 :(得分:1)
如果子查询返回的值超过1,它将处理。
UPDATE tblmain
SET tblmain.notes = ( tblmain.notes
+ (SELECT DISTINCT notes + ' '
FROM tblsecond
WHERE tblsecond.id = tblmain.id
FOR xml path ('')) )