Maison > base de données > tutoriel mysql > le corps du texte

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
Libérer: 2024-10-31 03:08:02
original
878 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal