ホームページ >データベース >mysql チュートリアル >一致するユーザー名に基づいて SQL テーブルの行を更新するにはどうすればよいですか?

一致するユーザー名に基づいて SQL テーブルの行を更新するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-15 08:48:17390ブラウズ

How to Update SQL Table Rows Based on Matching Usernames?

一致するユーザー名に基づいてテーブル内の行の値を更新します

Q: テーブル値を更新します

SQL Database には、table_atable_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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。