Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 00h10   #1
Membre actif
 
Homme
Inscription : octobre 2006
Messages : 664
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2006
Messages : 664
Points : 197
Points : 197
Par défaut Problème de DELETE avec IN et SELECT ?

Bonjour,

Le code suivant ne fonctionne pas :
Code :
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 :
Citation:
#1093 - You can't specify target table 'att_camp_prosp' for update in FROM clause
Merci,
ZiP
[ZiP] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 01h45   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Alors pourquoi pas, tout simplement
Code sql :
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%'
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 07h34   #3
Membre actif
 
Homme
Inscription : octobre 2006
Messages : 664
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2006
Messages : 664
Points : 197
Points : 197
Bonjour,

J'ai l'erreur suivante avec votre code :
Citation:
#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
[ZiP] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 09h30   #4
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Il manque juste l'alias derrière le DELETE dans la requête de Maljuna Kris (petite subtilité de MySQL ) :
Code :
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%'
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 10h17   #5
Membre actif
 
Homme
Inscription : octobre 2006
Messages : 664
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2006
Messages : 664
Points : 197
Points : 197
Bonjour,

Les informations ont bien été supprimées malgré le message suivant :
Citation:
0 ligne(s) supprimée(s). ( Traitement en 0.2945 sec. )
Merci,
ZiP
[ZiP] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 13h52   #6
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
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.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h45.


 
 
 
 
Partenaires

Hébergement Web