[SQL] Erreur avec UPDATE

Fermé
fredo78310 Messages postés 64 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 - 27 nov. 2008 à 12:03
 toto - 28 nov. 2008 à 09:40
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 !!
A voir également:

9 réponses

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
fredo78310 Messages postés 64 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 5
27 nov. 2008 à 14:32
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
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
27 nov. 2008 à 19:28
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
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
fredo78310 Messages postés 64 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 5
27 nov. 2008 à 15:08
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
ESSAYE CA:

UPDATE dap
SET dap.numCC = da.numCC
FROM dap
INNER JOIN da ON dap.numCh = da.numCh;
0
fredo78310 Messages postés 64 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 5 > Cisco
27 nov. 2008 à 15:50
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
fredo78310 Messages postés 64 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 5
27 nov. 2008 à 16:33
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
deglingo592003 Messages postés 77 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 31 janvier 2014 11
27 nov. 2008 à 19:42
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
Tu pourrais aussi essayer "abracadabra".
Après tout, moi aussi j'ai le droit de proposer n'importe quoi.
0
deglingo592003 Messages postés 77 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 31 janvier 2014 11
27 nov. 2008 à 22:18
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
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
Oups... Il fallait lire "ne les dispense pas", bien sûr.
0