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 :

Problème de DELETE avec IN et SELECT ?


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut Problème de DELETE avec IN et SELECT ?
    Bonjour,

    Le code suivant ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE FROM `att_camp_prosp` WHERE id_attprospect IN (SELECT a.id_attprospect AS id_attprospect FROM `att_camp_prosp` AS a, `prospe` AS b WHERE a.id_attprospect=b.Id AND a.id_attcampagne=70 AND b.CP LIKE '13%')
    Je veux supprimer tous les enregistrements de la table att_camp_prosp qui ont id_attcampagne=70 et dont le CP commence par 13.

    La requête SELECT fonctionne.

    Le DELETE me donne l'erreur suivante :
    #1093 - You can't specify target table 'att_camp_prosp' for update in FROM clause
    Merci,
    ZiP

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Alors pourquoi pas, tout simplement
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM `att_camp_prosp` AS a
    INNER JOIN `prospe` AS b
    ON a.id_attprospect=b.Id
    WHERE a.id_attcampagne=70
    AND b.CP LIKE '13%'

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    J'ai l'erreur suivante avec votre code :
    #1064 - Erreur de syntaxe près de 'AS a INNER JOIN `prospe` AS b ON a.id_attprospect=b.Id WHERE a.id_attcampagne' à la ligne 1
    Merci pour votre aide,
    ZiP

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 039
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 039
    Points : 23 787
    Points
    23 787
    Par défaut
    Il manque juste l'alias derrière le DELETE dans la requête de Maljuna Kris (petite subtilité de MySQL ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE a 
    FROM `att_camp_prosp` AS a
    INNER JOIN `prospe` AS b ON a.id_attprospect=b.Id
    WHERE a.id_attcampagne = 70
    AND b.CP LIKE '13%'

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    Les informations ont bien été supprimées malgré le message suivant :
    0 ligne(s) supprimée(s). ( Traitement en 0.2945 sec. )
    Merci,
    ZiP

  6. #6
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par ced Voir le message
    Il manque juste l'alias derrière le DELETE dans la requête de Maljuna Kris (petite subtilité de MySQL ) :
    Désolé, je suis tellement effacé que j'en ai oublié la syntaxe du DELETE.

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

Discussions similaires

  1. Problème de recordset avec requête SELECT
    Par gwinyam dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 08/03/2007, 10h53
  2. [MySql 4.0] - DELETE avec un SELECT
    Par JuS80 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/01/2007, 11h00
  3. [C#][2.0]Problème de Delete avec DataSet Typé
    Par genki dans le forum Accès aux données
    Réponses: 2
    Dernier message: 04/01/2007, 13h42
  4. problème requete : DELETE pr0 WHERE num1 in(select ..
    Par pierre.egaud dans le forum Oracle
    Réponses: 10
    Dernier message: 21/11/2006, 11h34
  5. [MySQL] Problème avec un champ selected
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/01/2006, 17h01

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