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 :

DELETE FROM plusieurs tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut DELETE FROM plusieurs tables
    Bonjour,

    Je voudrais savoir si il était possible de faire un DELETE FROM avec plusieurs tables ?

    J'essaie de lancer la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM sondage__reponse, sondage__question, sondage__choix 
    WHERE sondage__reponse.CodeChoix = sondage__choix.CodeChoix AND sondage__choix.CodeSondage = sondage__question.CodeSondage AND sondage__question.CodeSondage = '2'
    Mais j'obtiens l'erreur suivante:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE sondage__reponse.CodeChoix = sondage__choix.CodeChoix AND sondage__choix.C' at line 1

  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 : 73
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Citation Envoyé par Khleo Voir le message
    Je voudrais savoir si il était possible de faire un DELETE FROM avec plusieurs tables ?
    A l'évidence, non.

    Si tu nous expliquais clairement ce que tu veux faire, en dehors de toute retranscription SQL, il serait peut-être plus facile pour nous de te guider vers la solution
    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)

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par défaut
    J'ai le même problème. Je vais essayer de donner un exemple plus concret.
    J'ai deux tables et je veux enlever les lignes de la première table qui sont présent dans la seconde. Exemple

    Table 1
    Ref NomFichierMesure
    1 Mesure 1
    2 Mesure 2
    3 Mesure 3

    Table 2
    Ref NomFichierReference
    1 Mesure 1
    2 Mesure 4

    Dans cet exemple la Table 1 devient

    Table 1
    Ref NomFichierMesure
    2 Mesure 2
    3 Mesure 3

    On a suprimé la ligne contenant Mesure1 car elle est dans table2

    j'avais essayé la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DELETE FROM Table1
    WHERE Table1.NomFichierMesure=Table 2.NomFichierReference
    mais ça plante

  4. #4
    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 : 73
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    SAluton,
    Et comme ça ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM Table1
    INNER JOIN Table2 ON NomFichierMesure=NomFichierReference
    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)

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Salut,

    En PHP, j'ai fait un SELECT avec un while, et dans le while je fais un DELETE avec la référence sortie du SELECT.

  6. #6
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM Table1
    INNER JOIN Table2 ON NomFichierMesure=NomFichierReference
    J'ai déjà essayé une requête de ce genre et MySQL me renvoi une erreur 1064. C'est pareil avec celle ci.

    Citation Envoyé par Khleo Voir le message

    En PHP, j'ai fait un SELECT avec un while, et dans le while je fais un DELETE avec la référence sortie du SELECT.
    C'est une solution mais je préfèrerais le faire en SQL

  7. #7
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    on peut avoir le message d'erreur complet?
    quelle version de MySQL?

    Merci

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Par défaut
    UP! Ca m'intéresse!

Discussions similaires

  1. Delete sur plusieurs tables
    Par Megoy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/05/2007, 10h41
  2. DELETE avec plusieurs tables
    Par tom42 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/04/2007, 14h08
  3. Delete sur plusieurs tables
    Par estelledany dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/07/2006, 11h16
  4. [MSDE] Delete sur plusieurs tables ?
    Par hardballer dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2006, 10h13
  5. delete sur plusieurs tables
    Par drinkmilk dans le forum Oracle
    Réponses: 11
    Dernier message: 22/03/2006, 16h43

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