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