ホームページ >データベース >mysql チュートリアル >別のテーブルのデータに基づいて MySQL 列の値を更新するにはどうすればよいですか?

別のテーブルのデータに基づいて MySQL 列の値を更新するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-17 05:01:10427ブラウズ

How to Update a MySQL Column's Value Based on Data from Another Table?

MySQL: 別のテーブルのデータに基づいて列の値を更新します

質問:

同様の構造を持つ 2 つのテーブルがあるとします。

id name value
1 Joe 22
2 Derk 30

タスクは、一致する「name」値に基づいて、テーブル B の「value」列をテーブル A の値で更新することです。

解決策:

SQL UPDATE ステートメントを JOIN 句とともに使用して、この更新操作を実行できます。考えられるクエリは次のとおりです:

<code class="language-sql">UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = tableA.value;</code>

このクエリは、「name」列に基づいて、テーブル A に一致するテーブル B 内のすべての行の「value」列を更新します。

動的な値の更新:

テーブル A.value の値に基づいてテーブル B.value を動的に更新するようにクエリを変更できます。たとえば、次のクエリはテーブル A.value が 0 より大きい場合にのみテーブル B.value を更新します:

<code class="language-sql">UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
WHERE tableA.name = 'Joe';</code>

この例では、テーブル B の「名前」「Joe」を持つ行の「値」列は、テーブル A の値が 0 より大きい場合にのみ、テーブル A の値で更新されます。それ以外の場合、テーブル B の既存の値は変更されません。

以上が別のテーブルのデータに基づいて MySQL 列の値を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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