数据库SQL查询 - #1242 - 子查询返回多行

时间:2014-03-05 15:20:59

标签: sql database phpmyadmin

我在我的一个表中添加了额外的列,我必须通过匹配两个表的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

提前致谢

2 个答案:

答案 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)

......或类似的东西。