Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour un champ de table à l'aide des données de plusieurs tables jointes dans SQL ?

Comment puis-je mettre à jour un champ de table à l'aide des données de plusieurs tables jointes dans SQL ?

Barbara Streisand
Libérer: 2025-01-22 14:07:09
original
258 Les gens l'ont consulté

How Can I Update a Table Field Using Data from Multiple Joined Tables in SQL?

MISE À JOUR SQL avec plusieurs jointures de tables

La mise à jour d'un champ de table à l'aide des données de plusieurs tables jointes est une opération SQL fréquente. Ce guide montre comment effectuer cette tâche efficacement.

Scénario :

Imaginez une base de données avec trois tables : item_master (im), group_master (gm) et Manufacturer_Master (mm). Nous utiliserons ces tableaux pour illustrer le processus de mise à jour. Un exemple de récupération de données est présenté ci-dessous :

<code class="language-sql">SELECT
    im.itemid,
    im.sku AS iSku,
    gm.SKU AS GSKU,
    mm.ManufacturerId AS ManuId,
    mm.ManufacturerName,
    im.mf_item_number,
    mm.ManufacturerID
FROM
    item_master im, group_master gm, Manufacturer_Master mm
WHERE
    im.mf_item_number LIKE 'STA%'
    AND im.sku = gm.sku
    AND gm.ManufacturerID = mm.ManufacturerID
    AND gm.manufacturerID = 34;</code>
Copier après la connexion

Exigence de mise à jour :

L'objectif est de mettre à jour le champ mf_item_number dans item_master avec les valeurs dérivées des tables jointes.

Solution SQL :

L'instruction SQL suivante effectue cette mise à jour :

<code class="language-sql">UPDATE im
SET mf_item_number = gm.SKU  -- Or other appropriate field from joined tables
FROM item_master im
JOIN group_master gm ON im.sku = gm.sku
JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID
WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34;</code>
Copier après la connexion

Explication :

  • UPDATE im : Spécifie la table (item_master alias im) à mettre à jour.
  • SET mf_item_number = gm.SKU : Attribue la nouvelle valeur à mf_item_number. La nouvelle valeur provient de la colonne SKU du tableau group_master (gm). Vous pouvez remplacer gm.SKU par tout autre champ pertinent des tables jointes.
  • FROM item_master im JOIN group_master gm ON im.sku = gm.sku JOIN Manufacturer_Master mm ON gm.ManufacturerID = mm.ManufacturerID : définit les jointures entre les trois tables en fonction de la correspondance des valeurs sku et ManufacturerID.
  • WHERE im.mf_item_number LIKE 'STA%' AND gm.manufacturerID = 34 : filtre les lignes à mettre à jour, garantissant que seules celles correspondant aux critères spécifiés sont affectées.

L'exécution de cette requête met à jour le champ mf_item_number dans la table item_master avec les valeurs SKU correspondantes de group_master, en fonction des conditions de jointure et des filtres de clause WHERE. N'oubliez pas d'ajuster les clauses SET et WHERE pour qu'elles correspondent à vos exigences de mise à jour spécifiques.

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