我在我的一个表中添加了额外的列,我必须通过匹配两个表的qText列,根据另一个表中的数据更新这个额外的列。
如果澄清两列中的qtext是否相同,请从yetkinlik表更新工作集中的ytype列。
update worksets set yType=(select ytype from yetkinlik) where qText =(select qText from yetkinlik);
这个sql代码给我错误,如
#1242 - Subquery returns more than 1 row
提前致谢
答案 0 :(得分:1)
您不能拥有返回多个结果的子查询。这是您错误消息报告的问题。如果我正确理解您要完成的任务,那么您的查询应该更像是:
UPDATE w
SET yType = y.yType
FROM worksets w
INNER JOIN yetkinlik y
ON w.qText= y.qText
这应该根据来自yetkinlik表的匹配数据更新工作集表。
答案 1 :(得分:0)
你做不到
yType=(select ytype from yetkinlik)
在这种情况下;这可能会带来多重结果。
而是考虑
yType=(select ytype from yetkinlik limit 1)
......或者其他类似的东西。另外,
qText =(select qText from yetkinlik)
应该看起来像
qText in (select qText from yetkinlik)
......或类似的东西。