-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

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 に答える