2014-03-05 180 views
-1

我添加额外的列到我的表之一,我必须根据双方的匹配表的QTEXT列从另一个表中的数据来更新这个额外的列。数据库SQL查询 - #1242 - 子查询返回多个1

作为澄清如果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

请发表评论吗? – Furkan

回答

1

你不能有子查询返回多个结果。这是您的错误消息正在报告的问题。如果我知道你要完成什么正确,您的查询应该更像:

UPDATE w 
SET yType = y.yType 
FROM worksets w 
    INNER JOIN yetkinlik y 
    ON w.qText= y.qText 

这应该更新基于从yetkinlik表的匹配数据的工作集表。

+0

#1064 - 您的SQL语法错误;请检查与您的MySQL服务器版本相对应的手册,以找到正确的语法,以便在第3行的'FROM worksets w INNER JOIN yetkinlik y ON w.qText = y.qText'附近使用 – Furkan

+0

哎呀。我处于SQL Server模式。这将是正确的SQL Server答案。 – BBlake

+0

那我该怎么做? – Furkan

0

在这种情况下,你不能这样做

yType=(select ytype from yetkinlik) 

;这可能会带来多重结果。

而是考虑

yType=(select ytype from yetkinlik limit 1) 

...或者类似的规定。此外,

qText =(select qText from yetkinlik) 

应该像

qText in (select qText from yetkinlik) 

...或者类似的规定。

相关问题