我有一个更新查询,我需要在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