Maison  >  Article  >  base de données  >  Comment mettre à jour une table avec les données d'une autre table en fonction des ID correspondants et de l'ordre de tri ?

Comment mettre à jour une table avec les données d'une autre table en fonction des ID correspondants et de l'ordre de tri ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 03:08:02811parcourir

How to Update a Table with Data from Another Table Based on Matching IDs and Sort Order?

Requête MySQL avancée : mise à jour d'une table à l'aide des données d'une autre table

La tâche à accomplir consiste à mettre à jour la colonne e-mail dans la table business avec les données de la colonne email de la table people. Les deux tables sont reliées par la colonne business_id.

Une approche simple de cette requête de mise à jour est la suivante :

<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>

Cependant, cette requête ne mettrait à jour que la toute première correspondance pour chaque business_id. dans la table des personnes. La modification permettant de garantir que nous mettons à jour tous les enregistrements professionnels pertinents est la suivante :

<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>

En joignant explicitement les tables business (b) et people (p) à l'aide de la syntaxe JOIN, la requête garantit que seules les personnes ayant le tri_order le plus élevé La valeur (c'est-à-dire « 1 » dans ce cas) affecte la mise à jour. Cela correspond plus précisément à l'objectif visé consistant à mettre à jour les données de l'entreprise avec l'adresse e-mail de la personne la mieux classée pour chaque entreprise.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn