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!