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 :

NOT IN (SELECT) sous MySQL


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut NOT IN (SELECT) sous MySQL
    Bonjour à tous,

    Je suis bloqué sur un requête SQL, pour faire simple, je souhaite retrouver tous les dossiers qui n'ont pas de documents de type "Library::Eso"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c.id, c.`code` from `customer_files` c WHERE c.`id` NOT IN (SELECT d.`customer_file_id` FROM `documents` d WHERE d.`type` = "Library::Eso")

    0 résultat

    J'ai donc scindé les requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c.id, c.`code` from `customer_files` c

    1300 résultats OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT d.`customer_file_id` FROM `documents` d WHERE d.`type` = "Library::Eso"

    802 résultats OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c.`code` from `customer_files` c LEFT JOIN `documents` d ON c.id = d.customer_file_id where d.`type` = "Library::Eso
    "


    797 résultats OK

    Donc là je sèche... j'ai même essayé une autre technique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT c.`code` from `customer_files` c LEFT OUTER JOIN `documents` d ON c.id = d.customer_file_id where d.`type` = "Library::Eso" HAVING COUNT(d.customer_file_id) = 0

    0 résultat...

    Si quelqu'un pouvait m'éclairer sur l'erreur commise... merci d'avance

  2. #2
    Membre habitué Avatar de tfc3146
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2009
    Messages : 79
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    Et en essayant quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT c.id, c.code
    FROM customers_files c
    WHERE NOT EXISTS (SELECT d.*
    		  FROM documents d
    		  WHERE c.id=d.customer_file_id
    		  AND d.tyoe = 'Library::Eso')

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci tfc3146,

    Ca fonctionne en effet très bien comme cela...

    Mais y'a t'il une raison pour que les techniques employées soient expliquées mais ne fonctionnent pas... ?

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Ton problème c'est que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT d.`customer_file_id` 
      FROM `documents` d 
     WHERE d.`type` = "Library::Eso"
    contient des NULL.

    SELECT NOT IN

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Ah oui en effet, ça fonctionne nickel maintenant.

    juste rajouté un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     AND `documents`.`customer_file_id` IS NOT NULL
    Merci Beaucoup pour votre aide et pour le lien fournit, en effet le problème se rapproche du mien.

    Bonne journée

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

Discussions similaires

  1. Problème avec select sous MYSQL
    Par Thomad dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/01/2006, 12h26
  2. Requete NOT IN sous MySQL 4.0
    Par lo72 dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/04/2004, 13h03
  3. Clé étrangère sous MySQL
    Par NPortmann dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 16/02/2004, 14h46
  4. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 10h59
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 10h33

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