Maison >base de données >tutoriel mysql >Comment mettre à jour une table SQL Server à l'aide d'une jointure ?

Comment mettre à jour une table SQL Server à l'aide d'une jointure ?

DDD
DDDoriginal
2025-01-23 09:42:10250parcourir

How to Update a SQL Server Table Using a Join?

Mise à jour des tables SQL Server via des jointures : un guide complet

Ce guide explique comment mettre à jour une table SQL Server en utilisant les données d'une autre table via une jointure. Nous couvrirons le processus étape par étape, en l'illustrant avec des exemples pratiques.

1. Définir la relation de table :

Tout d’abord, identifiez clairement la relation entre les tables impliquées. Par exemple, considérons les tables « sale » et « ud ». Supposons que « sale.assid » soit une clé étrangère faisant référence à « ud.assid ». Ceci définit le lien entre les deux tables.

2. Construction de la requête UPDATE :

Le cœur de l'opération de mise à jour réside dans l'instruction UPDATE. Cette instruction cible la table à modifier, suivie d'une clause JOIN pour établir la connexion avec la table source.

3. Spécification des valeurs de mise à jour :

La clause SET dicte la ou les colonnes à mettre à jour et leurs nouvelles valeurs, provenant de la table jointe. Par exemple, SET u.assid = s.assid met à jour 'ud.assid' avec la valeur correspondante de 'sale.assid'.

4. Définir la condition de jointure :

La clause JOIN utilise le mot-clé ON pour spécifier la condition de jointure. Dans notre exemple, ON u.id = s.udid relie les lignes où « ud.id » correspond à « sale.udid ».

5. Requête illustrative :

Voici un exemple de requête illustrant le processus :

<code class="language-sql">UPDATE ud u
SET u.assid = s.assid
FROM ud u
INNER JOIN sale s ON u.id = s.udid;</code>

Cette requête met à jour 'ud.assid' pour chaque ligne où un 'udid' correspondant existe dans la table 'sale'.

Approche alternative : sous-requêtes :

SQL Server prend également en charge l'utilisation de sous-requêtes dans la clause SET pour dériver les valeurs de mise à jour. Cela offre une syntaxe alternative :

<code class="language-sql">UPDATE ud u
SET u.assid = (
    SELECT s.assid
    FROM sale s
    WHERE s.udid = u.id
);</code>

Remarque importante : Les performances et la compatibilité du système de base de données peuvent influencer la syntaxe préférée. Pensez à tester les deux approches pour déterminer la solution optimale pour votre scénario spécifique.

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