IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

UPDATE issue d'une comparaison de tables


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Par défaut UPDATE issue d'une comparaison de tables
    Bonjour,

    Avis aux experts, j'ai une requête complexe à réaliser. J'ai deux tables:
    Table1 contient les champs ID3, champ1, champ2,...,champ100
    Table2 contient les champs ID0,ID1,ID2,ID3, champ1,champ2,...,champ100

    Les Tables sont liées par ID3. Dans table2, certains champs ont été modifiés par rapport à Table1 pour un même ID3. Table2 ne contient que certains enregistrements modifiés de Table1.

    Comment créer une requête UPDATE afin de, pour 1 enregistrement de Table2, effectuer les modifications dans Table1? Car les champs n'ont pas tous été modifiés.

    Concrètement je veux écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Table1 T1 INNER JOIN Table2 T2 ON T1.ID3=T2.ID3 SET T1.champ1=T2.chchamp1,T1.champ2=T2.champ2,[...],T1.champ100=T2.champ100 WHERE ID3=X
    Mais c'est très lourd étant donné qu'il y a bcp de champs, alors que seulement un petit nombre d'entre eux ont été modifiés ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Par défaut
    Je commence par faire un delete de l'enregistrment ID3=X de table1.

    Après je dois faire un INSERT de l'enregistrement ID3=X de table2, mais je ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Table1 SELECT * FROM Table2 WHERE ID=3
    car Table1 ne contient pas les champs ID0,ID1 et ID2.

    Y aurait il moyen de faire un SELECT * privé de certains champs ?

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Citation Envoyé par JulienCEA
    Y aurait il moyen de faire un SELECT * privé de certains champs ?
    Bien sûr... en donnant le détail des colonnes
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. [AC-2007] Requête : comment obtenir une comparaison multi-tables
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/09/2009, 10h09
  3. Réponses: 7
    Dernier message: 17/10/2006, 16h32
  4. Comparaison d'un champ issu d'une requete SQL
    Par Homer dans le forum ASP
    Réponses: 3
    Dernier message: 22/02/2005, 13h41
  5. Réponses: 2
    Dernier message: 29/09/2004, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo