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

Requêtes MySQL Discussion :

update avec group by


Sujet :

Requêtes MySQL

  1. #1
    slc
    slc est déconnecté
    Nouveau membre du Club
    Inscrit en
    Février 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 36
    Points : 37
    Points
    37
    Par défaut [résolu] update avec group by
    Bonjour,
    je souhaiterai transformer la requete suivant en update :

    T1 contient
    hash varchar (20) clé primaire
    hash_libelle varchar (50)

    T2 :
    ID : entier auto incrémenter, clé primaire
    hash varchar (20), clé etrangère pour T1
    hash_libelle varchar(50)

    T1 contient tout les hash existant.
    T2 contient l'historique de des libéllé des hashs.

    Je souhaite renseigné dans t1.hash_libelle le plus ancien libéllé. Je le récupère via min(id).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select t1.hash, min(t2.id), t2.hash_libelle
    from tb_hash t1 join tb_hash_histo t2 using (hash)
    group by t2.hash
    Cette requete fonctionne et j'aimerai la transformé en update sans sous requete, j'ai mysql 4.0.16 et je ne peux pas upgrader en 4.1.

    j'ai tenté ce code mais j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    update tb_hash t1 join tb_hash_histo t2 using (hash)
    set t1.hash_libelle = t2.hash_libelle
    group by t2.hash
    having id = min(id)

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    sans sous requêtes, je ne pense pas que ce soit possible...

    je ne crois pas que ce soit possile de faire un update à partir de valeurs d'une autre table sans sous requêtes, enfin, il est possible que je me trompe...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    slc
    slc est déconnecté
    Nouveau membre du Club
    Inscrit en
    Février 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    bon va falloir faire le forcing pour passer la base en 4.1

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Tu utilises bien un language avec ta base ? Tu peux pas t'en servir ?

    Sinon dans la 4.1 on peut enfin utiliser les sous-requêtes ? Je savais pas !

    Où alors tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT @mavaleurmin:=<le reste de ta requête>;
     
    UPDATE .... SET ...=@mavaleurmin ...;
    Voilà !

  5. #5
    slc
    slc est déconnecté
    Nouveau membre du Club
    Inscrit en
    Février 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 36
    Points : 37
    Points
    37
    Par défaut
    salut,
    c'est ce que j'ai commencé a faire. Mais j'essayais dans un premier temps de construire une seul requete. C'est plus portable.

    Pour les sous requete, elles sont disponible a partir de la 4.1. Mais c'est une release gamma (je sais pas ce que c'est). A ne pas mettre en prod sans doute.
    Donc je vais rajouter un peu de php pour faire tourner cette requete.

    Merci pour votre aide.

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

Discussions similaires

  1. UPDATE avec Jointure, clause GROUP BY et HAVING
    Par bilbot dans le forum Développement
    Réponses: 3
    Dernier message: 19/01/2012, 14h12
  2. Update avec jointure et group by
    Par olibara dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/11/2010, 10h18
  3. pb avec Group by et INNER JOIN/UPDATE TABLE
    Par Larentia dans le forum Requêtes
    Réponses: 6
    Dernier message: 19/01/2009, 20h05
  4. [version] Requete Update avec différentes versions de mySQL
    Par regbegpower dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2004, 17h19
  5. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58

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