SQL Update + where exists

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : SQL Update + where exists

Re: SQL Update + where exists

par Filou » 17 mars 2010, 00:25

Merci beaucoup ! ça marche !

Effectivement j'avais intégré des parenthèses mais pas au bon endroit.

A+

Re: SQL Update + where exists

par pascaltje » 16 mars 2010, 20:43

si ta 1ère requête marche, autant la garder, non ?

Sinon le soucis du "OR" c'est une parenthèse manquante.

A+

Pascal

Re: SQL Update + where exists

par Invité » 16 mars 2010, 20:40

Merci pour ta réponse.

Effectivement si je supprime la fin de la requête (le "or") elle modifie juste les enregistrements "Est". OK
Comment rajouter une jointure à ce niveau pour qu'également "sud" soit pris en compte ? Je tourne
en rond !

Merci de ton aide !

Re: SQL Update + where exists

par pascaltje » 16 mars 2010, 20:31

Hello,

Dans ta 2e requête, la partie "EXISTS" renvoie true, donc l'update se fait pour tout le monde.

Il faut faire une jointure, d'une manière ou d'une autre.

A+

Pascal

SQL Update + where exists

par Invité » 16 mars 2010, 19:33

Bonjour,

Je suis en train d'essayer d'écrire une requête de mise à jour en SQL.
Cependant je rencontre un problème :
Lorsque j'écris la requête de cette manière
UPDATE Vendeur INNER JOIN Secteur ON Vendeur.Num_secteur=Secteur.Num_secteur SET fixe = fixe*1.04
WHERE Nom_secteur="est" OR Nom_secteur="sud";
j'obtiens les modifications souhaitées
Mais je n'aime pas trop utiliser inner join.

Lorsque j'écris la requête de la manière suivante :
UPDATE vendeur SET fixe = fixe*1.04
WHERE exists (select * from secteur where vendeur.num_secteur=secteur.num_secteur and secteur.nom_secteur ="est" or secteur.nom_secteur ="sud");
Tous les enregistrements se mettent à jour et pas seulement les enregistrements des vendeurs "est" et "sud".
Je n'arrive pas à voir pourquoi.

Pouvez-vous SVP m'indiquer l'erreur que je fais dans la deuxième solution ?

Bonne réception et merci de votre aide.