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

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

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

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