Maison >base de données >tutoriel mysql >Comment mettre à jour les colonnes du tableau A en fonction des noms d'utilisateur correspondant dans le tableau B ?

Comment mettre à jour les colonnes du tableau A en fonction des noms d'utilisateur correspondant dans le tableau B ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-15 07:40:46934parcourir

How to Update Table A Columns Based on Matching Usernames in Table B?

Mise à jour du tableau A en fonction des noms d'utilisateur correspondants dans le tableau B

Ce guide montre comment mettre à jour les colonnes du tableau table_a à l'aide des données de table_b, en faisant correspondre les lignes en fonction d'une colonne "nom_utilisateur" commune. L'objectif est de remplir column_a_1 et column_a_2 dans table_a avec les valeurs de column_b_1 et column_b_2 dans table_b, respectivement, pour faire correspondre les noms d'utilisateur.

Solution SQL :

L'instruction SQL suivante réalise efficacement cette mise à jour :

<code class="language-sql">UPDATE table_a
SET
    column_a_1 = (SELECT b.column_b_1 FROM table_b b WHERE b.user_name = table_a.user_name),
    column_a_2 = (SELECT b.column_b_2 FROM table_b b WHERE b.user_name = table_a.user_name)
WHERE
    EXISTS (SELECT 1 FROM table_b b WHERE b.user_name = table_a.user_name);</code>

Cette requête utilise des sous-requêtes pour récupérer les valeurs appropriées de table_b et les applique aux lignes correspondantes dans table_a. La clause EXISTS garantit que seules les lignes avec des noms d'utilisateur correspondant dans les deux tables sont mises à jour, évitant ainsi les erreurs si un nom d'utilisateur existe dans table_a mais pas dans table_b. L'utilisation d'alias (comme b pour table_b) améliore la lisibilité.

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