此查询不适用于版本为5.1的MySQL,但在最新版本的MySQL(5.5)上运行。
Update furni T1 Set T1.user_id = (SELECT T2.user_id FROM furni_items T2 where T2.item_id = T1.id) ;
如何在MySQL 5.1上进行查询?
答案 0 :(得分:1)
一个猜测是子查询可能返回多行。您可以使用limit
只获得1:
Update furni T1
Set T1.user_id = (SELECT T2.user_id FROM furni_items T2 where T2.item_id = T1.id limit 1)
答案 1 :(得分:0)
使用join
Update furni T1
INNER JOIN furni_items T2
ON T2.item_id = T1.id
Set T1.user_id = T2.user_id ;
答案 2 :(得分:0)
我猜一些SQL在相关更新上的工作方式不同。试试这个没有连接语法,而是通过where子句。
Update furni t1, furni_items t2
Set t1.user_id = t2.user_id
Where t1.id = t2.item_id