私はフォーラムのようなウェブサイトのためのデータベースを持っています。それは、外部キーを持つ他のテーブル( '投稿'、 '投票'など)にリンクされている 'ユーザー'テーブルを持っています。1つのフィールドを1つのクエリで共有する複数のテーブルのレコードを更新するにはどうすればよいですか?
2人のユーザーを1人にマージする機能を実装しています。すべてのテーブルを再リンクする必要があります。だから私はこのようなクエリを構築したいと思います(この場合、user_id = 1は手を使わないユーザのidで、user_id = 2は最初のものにマージされるユーザのIDです)。
UPDATE posts, votes ... SET user_id=1 WHERE user_id=2
当然ですが、エラーが発生しました。「フィールドリストのuser_id列があいまいです。」
私の質問です:どのようにして1つのクエリで必要な結果を達成できますか? (可能であれば)
EDIT:実際のテーブル数は約6ですので、回答で考慮に入れることができれば非常に感謝しています。
だから、「UPDATE投稿、投票SET posts.user_id = 1、votes.user_id = 1 WHERE posts.user_id = 2、votes.user_id = 2」となっていますか?私はここで有効なMySQLコードを持っているのか分からない。 – sbichenko
@exizt:posts.user_id = votes.user_idとposts.user_id = 2 – Gerrat
しかし、実際に約6つのテーブルがある場合はどうなりますか? (申し訳ありませんが私は元の記事でそれを言及していない)。 – sbichenko