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

SQLite Discussion :

Update avec une jointure


Sujet :

SQLite

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Update avec une jointure
    Salut à tous,

    je me trouve face à un ptit problème de syntaxe avec SQLite que je n'avais pas prévu. Je viens de SQLServer et j'utilise SQLite pour faire des applis portables et légère. Il me convient très bien mais là j'essaye de faire un update comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    update B
     set libelleUK = A.libelle
    from TraductionTemp as A
    inner join Traduction as B
     on A.codeChamp = B.codeChamp
    bien entendu çà marche sur d'autres SGBD mais là rien à faire ...

    le message d'erreur est le suivant :
    SQL Error: near "from": syntax error
    est-ce une autre syntaxe ? ne peut-on pas faire un update une jointure (ce qui serait bien dommage quand même) ?

    Merci d'avance à ceux qui prendront le temps de me répondre.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Bon comme quoi faut mieux tourner sept fois ses doigts autours du clavier avant de poster.
    J'ai trouvé comment faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    update Traduction
     set libelleUK = (SELECT libelle
                      FROM TraductionTemp
                      WHERE TraductionTemp.codeChamp = Traduction.codeChamp)
    C'est dégueulasse mais çà marche ...

  3. #3
    Membre actif

    Inscrit en
    Décembre 2004
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 169
    Points : 225
    Points
    225
    Par défaut
    Moi je trouve que la requête est aussi propre et même plus compréhensible dans ce style que dans l'autre. Mais finalement, si ce n'est plus qu'une affaire de goût, la partie est gagnée.
    a+

    -- SQLite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Traduction
     SET libelleUK = (SELECT A.libelle
                      FROM TraductionTemp A
                      WHERE A.codeChamp = Traduction.codeChamp)
    -- SQLServeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE B
     SET libelleUK = A.libelle
    FROM TraductionTemp AS A
    INNER JOIN Traduction AS B
     ON A.codeChamp = B.codeChamp

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

Discussions similaires

  1. Update avec une jointure
    Par widedouche dans le forum SQL
    Réponses: 3
    Dernier message: 04/06/2012, 09h45
  2. Update avec une jointure externe
    Par feldi dans le forum SQL
    Réponses: 2
    Dernier message: 08/02/2012, 11h33
  3. [VB] faire un update avec une bdd en xml
    Par ekmule dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/02/2006, 22h41
  4. Update avec une sous requête
    Par Deejoh dans le forum Installation
    Réponses: 7
    Dernier message: 25/01/2006, 11h50
  5. Faire un update avec une ss requete renvoyant plusieur row
    Par djodjo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/09/2005, 15h51

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