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 et SELECT


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 68
    Par défaut UPDATE et SELECT
    Bonjour,

    J ai deux tables comparables nom/prenom/importance.
    Je voudrais remplacer le champ importance de la table 2 par celui de la table 1 quand nom et prenom sont identique.

    J ai essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE Table2
    SET Table2.Importance = SELECT(Table1.Importance FROM Table1 
    WHERE Table2.Prenom = Table1.Prenom AND Table2.Nom = Table1.Nom)
    Sans succes...
    Merci pour votre aide !

  2. #2
    Membre chevronné Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Par défaut
    Bonsoir,

    Le problème vient d'une parenthèse mal placée et du fait que vous mettez toujours à jour table2, même en l'absence de correspondance dans table1.

    Un essai en SQL normatif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE Table2
    SET Table2.Importance = (SELECT Table1.Importance FROM Table1 
    WHERE Table2.Prenom = Table1.Prenom AND Table2.Nom = Table1.Nom)
    WHERE EXISTS (SELECT 1 FROM Table1 
    WHERE Table2.Prenom = Table1.Prenom AND Table2.Nom = Table1.Nom)
    Sous SQL Serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Table2 
    SET Importance = table1.importance
    FROM table1 JOIN Table2 
    ON Table2.Prenom = table1.Prenom AND Table2.Nom = table1.Nom
    @+

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 68
    Par défaut Merci !
    Merci !

    Question stupide: faut il conserver la ligne 3 du code ? j ai l impression (...) qu il y a redondance avec les lignes 4 & 5.

    A quoi fait reference le "1" dans le code (ligne 4) ?

  4. #4
    Membre chevronné Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Par défaut
    Bonsoir,

    Pour la ligne 3, oui, c'est qu'on met dans "Importance". Les lignes 4 et 5 ne servent qu'a s'assurer qu'on y mette pas de null.
    Rq: ca doit pouvoir se faire plus joliment.

    Le 1 c'est une colonne bidon puisque seule l'existence nous intéresse, c'est plus rapide.

    @+

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    La syntaxe avec JOIN me semble normativement bonne, plus courte et plus élégante que la première donc utilise là.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. update et select en une seule fois
    Par laloupiote dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/06/2007, 16h58
  2. LIMIT dans UPDATE vs SELECT
    Par Yadutaf dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/04/2007, 21h36
  3. Update et select
    Par Arola78 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/09/2006, 15h07
  4. [Debutant] UPDATE et SELECT
    Par zooffy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/06/2006, 17h19
  5. [Oracle9i/ Pl/Sql] Update et select en même temps
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 7
    Dernier message: 31/05/2005, 18h26

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