-1

此查询不适用于 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 上工作?

4

3 回答 3

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) 
于 2013-08-04T15:41:27.527 回答
0

使用连接

    Update furni T1 
    INNER JOIN furni_items T2
    ON T2.item_id = T1.id
    Set T1.user_id  =  T2.user_id  ;
于 2013-08-04T15:42:35.677 回答
0

我猜一些 SQL 在相关更新上的工作方式不同。在没有连接语法的情况下尝试这个,而是通过 where 子句。

Update furni t1, furni_items t2
   Set t1.user_id = t2.user_id
  Where t1.id = t2.item_id
于 2013-08-04T17:03:18.573 回答