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 DELETE multi-tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Par défaut Problème DELETE multi-tables
    Bonjour,

    Voila je cherche à supprimer des enregistrements selon certains critères.
    J'arrive bien à selectionner les enregistrements à effacer mais je n'arrive pas à la transformer en requête de suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT swm.message_id, COUNT(DISTINCT swm.message_id) AS count
    FROM search_word_list swl
    INNER JOIN search_word_match swm ON swm.word_id = swl.word_id WHERE swl.word_text IN ('video', 'encode')
    GROUP BY swl.word_id
    HAVING count = 1
    Cette requête la liste des mots présent uniquement dans un seul message, et je souhaiterais donc supprimer ces mots.

    J'ai tenté un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DELETE FROM search_word_list WHERE word_id IN (
    SELECT swm.message_id, COUNT(DISTINCT swm.message_id) AS count
    FROM search_word_list swl
    INNER JOIN search_word_match swm ON swm.word_id = swl.word_id WHERE swl.word_text IN ('video', 'encode')
    GROUP BY swl.word_id
    HAVING count = 1)
    Mais il me renvoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [FONT=Courier New]Operand should contain 1 column(s)[/FONT]
    Le problème c'est que si j'enleve le COUNT, la requête n'est plus bonne

    Merci pour votre aide

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut,

    Le "WHERE word_id IN (" doit être suivi d'une série de X valeurs que peut prendre word_id, ou d'une sous-requête qui retourne X lignes avec une seule valeur (donc une seule colonne) à chaque ligne.

    Or ta requête située après retourne non seulement la colonne message_id mais aussi un count, d'où le "Operand should contain 1 column(s)"...

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Par défaut
    Oui je sais pourquoi MySQL me renvoit cette erreur, mais je ne sais pas comment faire pour ne pas renvoyer le "count" sachant que j'en ai quand même besoin dans la requête.

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Tu as essayé d'enlever le count dans le SELECT et de faire un HAVING COUNT(DISTINCT swm.message_id) = 1 ?

    (en plus count est un mot réservé donc c'est très moyen comme alias)

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Par défaut
    Citation Envoyé par Maximilian
    Tu as essayé d'enlever le count dans le SELECT et de faire un HAVING COUNT(DISTINCT swm.message_id) = 1 ?

    (en plus count est un mot réservé donc c'est très moyen comme alias)
    Bah oui tout simplement, qu'est ce que je peux être débile parfois

    Merci pour bcp pour ton aide

  6. #6
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    De rien... Un petit [Résolu] ?

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

Discussions similaires

  1. delete multi-tables en hql
    Par gregounet dans le forum Hibernate
    Réponses: 3
    Dernier message: 05/05/2008, 19h27
  2. requete DELETE multi-tables
    Par Diwann dans le forum SQL
    Réponses: 10
    Dernier message: 23/02/2007, 17h38
  3. DELETE multi-tables avec jointures
    Par Xunil dans le forum Requêtes
    Réponses: 13
    Dernier message: 23/10/2006, 16h44
  4. [MySQL 3.23.58] delete multi-tables
    Par GLDavid dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2006, 11h45
  5. erreur de syntaxe DELETE multi-tables
    Par yayacameleon dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/04/2006, 11h34

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