高度な MySQL クエリ: 別のテーブルのデータを使用したテーブルの更新
当面のタスクは、ビジネス テーブルの電子メール列を更新することですpeople テーブルの email 列のデータを使用します。 2 つのテーブルは、business_id 列によって接続されています。
この更新クエリへの直接的なアプローチは次のとおりです。
<code class="sql">UPDATE business b SET b.email = ( SELECT email FROM people p WHERE p.business_id = b.business_id AND sort_order = '1' ) WHERE b.email = '';</code>
ただし、このクエリは、各 business_id の最初の一致のみを更新します。人々のテーブルで。関連するすべてのビジネス レコードを確実に更新するための変更は次のとおりです。
<code class="sql">UPDATE business b, people p SET b.email = p.email WHERE b.business_id = p.business_id AND p.sort_order = '1' AND b.email = '';</code>
JOIN 構文を使用して business (b) テーブルと people (p) テーブルを明示的に結合することにより、クエリは、sort_order が最も高い人物のみが確実に更新されるようにします。値 (つまり、この場合は「1」) は更新に影響します。これにより、各ビジネスの最高位の人の電子メールを使用してビジネス データを更新するという意図された目標がより正確に一致します。
以上が一致する ID と並べ替え順序に基づいて、別のテーブルのデータでテーブルを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。