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 :

Clause "Not IN"


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Par défaut Clause "Not IN"
    Bonjour à tous,

    Voilà mon serveur (mysql v.3.23.58) ne prend pas la clause NOT IN donc j'ai fait une jointure comme ceci pour afficher une différence entre 2 tables :

    select p.products_id
    FROM products as p LEFT OUTER JOIN products_to_categories as pc ON p.products_id = pc.products_id
    WHERE pc.products_id IS NULL

    Jusque là tout va bien il affiche bien le résultat mais quand je veux faire ma requête de mise à jour j'ai un problème :

    update products
    set products_status = '0'
    where products_id IN (
    select p.products_id
    FROM products as p LEFT OUTER JOIN products_to_categories as pc ON p.products_id = pc.products_id
    WHERE pc.products_id IS NULL);

    Et là je pense qu'il aime pas que je fasse un update sur une table que j'utilise pour la requête et en plus il n'aime pas la clause "IN" alors je ne sais pas comment faire !!!

    Si vous aviez des idées !!!

    Merci d'avance

    @++

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    déjà, la sous requête en MySQL v3 il ne va carrément pas aimer... il me semble que MySQL n'accepte les sous requêtes que depuis la version 4.1 !! ensuite, il n'est pas impossible qu'une version "aussi récente" n'accepte pas non plus les IN
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Par défaut
    dans ce cas là je peux me brosser pour arriver à faire quelquechose, il n'existe pas d'équivalent ???

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par gonado
    dans ce cas là je peux me brosser pour arriver à faire quelquechose, il n'existe pas d'équivalent ???
    si tu veux le faire en (My)SQL pur, oui, c'est rappé, ensuite si tu passes par un langage externe (genre PHP) tu peux toujours bidouiller pour simuler le comportement (mais ça risque de faire exploser le nombre de requête)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Par défaut
    Oki bon ben je vais me débrouiller qd même !!!

    Grand merci à tous !!!

    Bye

    @++

  6. #6
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Citation Envoyé par gonado
    Si vous aviez des idées !!!
    Bien sûr qu'on a des idées!


    Essaye avec une jointure (oui oui, on peut faire des jointures dans un UPDATE... y'a pas problème) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE products
    LEFT OUTER JOIN products_to_categories as pc ON p.products_id = pc.products_id 
     
    SET products.products_status = '0' 
    WHERE pc.products_id IS NULL ;
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  7. #7
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par pcaboche
    Essaye avec une jointure (oui oui, on peut faire des jointures dans un UPDATE... y'a pas problème) :
    Peut-être en SQL standard, mais pour MySQL : pas moyen : http://dev.mysql.com/doc/refman/4.1/en/update.html
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  8. #8
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Citation Envoyé par Swoög
    Peut-être en SQL standard, mais pour MySQL : pas moyen : http://dev.mysql.com/doc/refman/4.1/en/update.html
    A ouais? Tu devrais lire les commentaires...
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  9. #9
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    oups... au temps pour moi... mais ça veut dire que la doc est fausse ou ... ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  10. #10
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Citation Envoyé par Swoög
    oups... au temps pour moi... mais ça veut dire que la doc est fausse ou ... ?
    ... ou qu'en fait, la même doc couvre les versions 3.23, 4.0 et 4.1 et qu'en fait ce n'est possible qu'à partir de la 4.0.4 ... ce qui n'est pas pour arranger nos affaires, malheureusement !
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

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

Discussions similaires

  1. MERGE sans clause WHEN NOT MATCHED
    Par Patmane dans le forum Oracle
    Réponses: 7
    Dernier message: 29/04/2009, 17h02
  2. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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