我有一個更新查詢,我需要在MySQL中運行,並且遇到了一些麻煩。我花了最後一個小時研究一個解決方案,但找不到真正有用的解決方案。我需要執行以下操作:使用MySQL中的子查詢進行更新
UPDATE TABLE1 SET ID = (SELECT TABLE2.ID FROM TABLE2, TABLE1
WHERE TABLE1.NAME=TABLE2.NAME) WHERE TABLE1.ID IS NULL
我一直在收到Error Code: 1242. Subquery returns more than 1 row
錯誤。我如何修改我的查詢以使其成功運行?
基本上,我需要根據條件從另一個表中填寫一列所有值的空白。請在這個問題上指導我。謝謝!
我試過這個,但它給了我一個'IN/ALL/ANY子查詢'錯誤中的未知列ID。爲什麼會發生? – CodingInCircles 2013-03-24 02:02:41
第一個ID在這裏不明確。 'SET ID'需要是'SET TABLE1.ID'。這可能會修復錯誤。爲什麼你會遇到未知的列錯誤,而不是一個不明確的列名錯誤,我不知道。 – starshine531 2013-03-24 12:03:08
@ starshine531感謝您的幫助,它的確被打破了。我回到了我的初步答案,並發現打破它的錯字。請參閱http://sqlfiddle.com/#!8/ed7df – didierc 2013-03-24 12:26:27