Maison > base de données > tutoriel mysql > Comment mettre à jour un champ de table à l'aide de jointures SQL ?

Comment mettre à jour un champ de table à l'aide de jointures SQL ?

DDD
Libérer: 2025-01-22 14:05:11
original
852 Les gens l'ont consulté

How to Update a Table Field Using SQL Joins?

Requête SQL UPDATE utilisant JOIN

Supposons que vous deviez mettre à jour un champ dans une table en fonction des valeurs extraites d'une jointure de plusieurs tables. Par exemple, vous pouvez avoir une table item_master (im) qui contient un champ mf_item_number qui doit être mis à jour en fonction des données de group_master (gm) et Manufacturer_Master (mm).

<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

Pour mettre à jour le champ mf_item_number dans item_master, vous pouvez utiliser l'instruction SQL suivante :

<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>
Copier après la connexion

Cette requête met à jour le champ mf_item_number dans item_master en fonction de la valeur SKU dans group_master, qui elle-même est filtrée par une condition impliquant Manufacturer_Master.

Voici un exemple de requête de mise à jour générique utilisant des jointures :

<code class="language-sql">UPDATE A
SET foo = B.bar
FROM TableA A
JOIN TableB B ON A.col1 = B.colx
WHERE ...;</code>
Copier après la connexion

Dans cet exemple, la clause UPDATE fait référence à l'alias de table A dans la clause FROM pour mettre à jour le champ foo en fonction de la valeur B.bar récupérée de la jointure entre TableA et TableB.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal