Mise à jour des champs SQL à l'aide de jointures : un guide complet
Souvent, la mise à jour d'un champ de table nécessite des données provenant d'autres tables. Ceci est réalisé efficacement en utilisant l'instruction UPDATE
de SQL avec des jointures. Ce guide montre le processus.
Structure des requêtes
La structure fondamentale d'une UPDATE
requête intégrant des jointures est :
<code class="language-sql">UPDATE target_table SET target_field = source_value FROM target_table JOIN source_table1 ON join_condition1 JOIN source_table2 ON join_condition2 WHERE filter_condition;</code>
Exemple illustratif
Disons que nous devons mettre à jour le champ mf_item_number
dans la table item_master
. Les nouvelles valeurs sont dérivées de la jointure des tables item_master
, group_master
et Manufacturer_Master
basées respectivement sur les colonnes sku
et ManufacturerID
.
La requête SQL serait :
<code class="language-sql">UPDATE im SET mf_item_number = gm.SKU 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
: définit le champ mf_item_number
sur la valeur de SKU
de la table group_master
(alias gm
).FROM item_master im JOIN ...
: définit les jointures entre les trois tables en fonction des valeurs de colonne correspondantes.WHERE ...
: filtre la mise à jour uniquement sur les lignes où mf_item_number
commence par 'STA%' et manufacturerID
vaut 34.Cas Général
Cette approche est adaptable à différents scénarios de mise à jour :
<code class="language-sql">UPDATE tableA SET fieldA = tableB.fieldB FROM tableA JOIN tableB ON tableA.common_column = tableB.common_column WHERE condition;</code>
Ceci met à jour fieldA
dans tableA
avec les valeurs de fieldB
dans tableB
, en fonction des valeurs common_column
correspondantes et de tout condition
spécifié. N'oubliez pas de toujours examiner attentivement votre requête avant son exécution pour éviter toute modification involontaire des données.
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!