[SQL] Erreur avec UPDATE

fredo78310 Messages postés 69 Statut Membre -  
 toto -
Bonjour,

j'ai une erreur avec cette requête que je n'arrive pas à contourner :

UPDATE dap
SET dap.numCC = da.numCC
WHERE dap.numCh = da.numCh;

La réponse est de MySQL est :

MySQL a répondu:
#1109 - Table inconnue 'da' dans where clause

Je comprends qu'il ne me trouve pas la table 'da' car il n'y a pas de FROM comme dans un SELECT... Mais je ne vois pas comment faire en sorte que ça marche...
Je pense que la requête est claire sur ce que je souhaite faire... Si y'a besoin de plus d'explications, y'a pas de problème...

Merci d'avance !!
Configuration: Windows 2000
Firefox 3.0.4

9 réponses

  1. toto
     
    Bonjour

    Si j'en crois mon manuel mysql, depuis la version 4.04, mysql accepte :
    UPDATE dap,da
    SET dap.numCC = da.numCC
    WHERE dap.numCh = da.numCh;
    0
  2. fredo78310 Messages postés 69 Statut Membre 5
     
    Sachant que j'ai MySQL 3.23.49, ça ne fonctionne pas, pour preuve voici l'erreur retournée :

    #1064 - Something is wrong in your syntax près de
    ' da SET dap.numCC = da.numCC WHERE da'
    à la ligne 1

    Si tu as d'autres idées ou quelqu'un d'autre, je suis preneur !!
    0
    1. Droopy_ Messages postés 252 Statut Membre 25
       
      Es-tu sûr que MySQL en version 3 soit capable de faire des update multitable ??? Je crois que ça viens avec la version 4. Mais je peux me tromper...
      0
  3. toto
     
    Faire une requête pour extraire tous les numCC,numCh de la table da
    Puis une boucle qui met à jour la table dap pour chacun des enregistrement trouvés ci-dessus.

    Beaucoup moins élégant et efficace que la solution en une seule requête, évidemment
    0
  4. fredo78310 Messages postés 69 Statut Membre 5
     
    Je n'ai jamais fait de boucle en SQL, je le faisais toujours en PhP, mais là je dois le faire en SQL...
    Tu pourrais m'aider en me montrant la structure stp ??
    0
    1. Cisco
       
      ESSAYE CA:

      UPDATE dap
      SET dap.numCC = da.numCC
      FROM dap
      INNER JOIN da ON dap.numCh = da.numCh;
      0
      1. fredo78310 Messages postés 69 Statut Membre 5 > Cisco
         
        Voici l'erreur retournée :

        #1064 - Something is wrong in your syntax près de
        'FROM dap INNER JOIN da ON dap.numCh = da.nu'
        à la ligne 3


        Je pense que c'est le FROM qu'il n'aime pas, la seule chose qu'il veut attendre c'est un WHERE ou rien, à mon avis...

        Merci quand même...
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. toto
     
    Je ne pensais pas à une boucle en mysql. Je pensais bien à une boucle en PHP. Il y a quelque chose qui t'interdit d'écrire un petit script ?
    0
    1. fredo78310 Messages postés 69 Statut Membre 5
       
      Techniquement, je peux le faire en PhP sans problème... Mais moralement, ça ne passe pas très bien parce que ça ne dépend pas que de moi... Trop long à expliquer...
      Bref, il me faut résoudre ce problème uniquement en SQL...
      0
  7. deglingo592003 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   11
     
    salut a toi

    et si tu exécuter ça avec une sous requête du genre

    UPDATE dap
    SET dap.numCC = da.numCC
    WHERE dap.numCh = (SELECT numCh FROM da WHERE ... ;) ;
    0
  8. toto
     
    Tu pourrais aussi essayer "abracadabra".
    Après tout, moi aussi j'ai le droit de proposer n'importe quoi.
    0
  9. deglingo592003 Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   11
     
    si c'est pour moi cette dernière réponse, j'essaye juste de guider je n'est peut être pas la solution exacte ou peut être pas du tout une bonne réponse mais c'est pas ce dernier commentaire qui fera avancer les choses

    j'essaye juste d'amener mon petit grain de sel

    je proposait ça juste dans un soucis du problème premier qui était de "comment lui faire trouver la table da"

    désolé d'avoir essayé ...
    0
  10. toto
     
    désolé d'avoir essayé
    Justement, si tu avais essayé, tu n'aurais pas fait cette proposition. Tu essayais de guider fredo vers quoi ? Tu ne sais pas toi même. La requête que tu proposais perpétuait l'erreur précédente (utiliser la table da, inconnue au niveau du SET).
    Je n'ai rien contre toi personnellement. Mais je vois beaucoup trop de 'suggestions' farfelues sur ce forum.
    Je crois qu'il faudrait que les gens comprennent que le fait d'être de bonne volonté (car tu l'es, je n'en doute pas) les dispense d'être rigoureux.
    0
    1. toto
       
      Oups... Il fallait lire "ne les dispense pas", bien sûr.
      0