一致するユーザー名に基づいてテーブル内の行の値を更新します
Q: テーブル値を更新します
SQL Database には、table_a と table_b という 2 つのテーブルがあり、どちらにも user_name という共通の列があります。 table_b 内の特定の列 (column_b_1 および column_b_2 という名前) を、一致する user_name 値に基づいて table_a 内の対応する列 (column_a_1 および column_a_2) にコピーしたいと考えています。 SQL ステートメントを使用してこれを実現するにはどうすればよいですか?
答え: 解決策
適切なインデックスが配置されている場合は、次の UPDATE ステートメントを使用できます:
<code class="language-sql">UPDATE table_a SET column_a_1 = (SELECT table_b.column_b_1 FROM table_b WHERE table_b.user_name = table_a.user_name), column_a_2 = (SELECT table_b.column_b_2 FROM table_b WHERE table_b.user_name = table_a.user_name) WHERE EXISTS ( SELECT * FROM table_b WHERE table_b.user_name = table_a.user_name );</code>
注: この UPDATE ステートメントはサブクエリを使用して、一致する user_name を持つ table_a 内の各行に対応する列の値を table_b から取得します。 。
パフォーマンスが懸念される場合は、SELECT および JOIN 操作を使用して、変更された行を保存する一時テーブルを構築することを検討してください。その後、table_a から既存のデータを削除し、一時テーブルから再設定できます。
以上が一致するユーザー名に基づいて SQL テーブルの行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。