2011-01-26 1 views
2

私は親テーブル "user"と子テーブル "profile"を持っています。すべてのプロファイルについて、同じIDを持つユーザーが存在しますが、それ以外のユーザーは存在しません。プロファイルに名前が付いていて、ユーザーにもプロパティ名が追加されました。MySQL:すべてのエントリをループして親テーブルを更新する

すべてのプロファイルでループし、同じIDでユーザーを取得し、プロファイルの名前でユーザーの列名を更新するMySQLステートメントを起動したいと考えています。

どうすればいいですか?私は前にSQL文でループを使用したことがない...

答えて

4

@KenDownsあなたがforloopsを必要といけない、正しかったです。しかし、彼の声明には小さな欠陥があった。

UPDATE user, profile 
SET user.name = profile.name 
WHERE profile.id = user.id 
+0

+1私の瑕疵を修正します。私の言い訳は、私はmysqlを使用しないでください:) –

2

SQLは、セットベースと、このようなもののためのループを必要としませんされています

UPDATE profiles 
    set name = user.name 
    from user 
where profiles.userId = user.userId 
+0

私はあなたのステートメント(私はプロファイルではなくユーザーを更新したい)を適用しましたが、私は1064を取得しました。ここに私のために働いた正しいものがあります私の完全なステートメントは次のとおりです。 UPDATEのrpl_user セット名は= rpl_profile からrpl_profile.name rpl_profile.id = rpl_user.id 私は何をしないのですか? –

関連する問題