2014-03-05 228 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) 

...或者類似的規定。

相關問題