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 de logique


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Par défaut problème de logique
    Bonjour,

    voilà j'ai un souci avec le NOT IN :

    explication:

    une table materiel
    id_materiel
    nom_materiel

    les valeurs de id_materiel sont :1,2,3,4,5,6,7,8,9

    une table demande_materiel
    id_demande
    ....
    id_materiel

    dans cette table je n'ai que la valeur 2 et 9 de présentes dans le champ id_materiel


    si je fais :

    Code :
    select id_materiel from materiel where id_materiel IN (select id_materiel from demande_materiel)


    la requete me retourne 2 et 9


    donc si je fais

    Code :
    select id_materiel from materiel where id_materiel NOT IN (select id_materiel from demande_materiel)


    je m'attends à avoir 1,3,4,5,6,7,8 (l'inverse)

    mais cette requete ne me retourne rien et je comprends pas pourquoi alors si quelqu'un a une idée je suis preneur
    merci d'avance

  2. #2
    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
    "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...

  3. #3
    Membre éclairé Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Par défaut
    le double post ne concerne pas ce sujet !!!

    je veux bien continuer de poser mes questions dans le bon post mais j'ai l'impression que bcp de post sont morst avant d'arriver à terme

  4. #4
    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 weedman59
    je veux bien continuer de poser mes questions dans le bon post mais j'ai l'impression que bcp de post sont morst avant d'arriver à terme
    C'est normal! En faisant une petite recherche, j'ai vu que tu avais lancé 3 discussions sur ton problème de demande_materiel avec toujours la même réponse: "ça marche pas...". Dans ces discussions les requêtes m'ont l'air tout à fait correctes, alors donne des exemples du contenu de tes tables, qu'on puisse comprendre ce qui cloche !
    "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...

  5. #5
    Membre éclairé Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Par défaut
    une discussion ne concernait pas le meme pb (cela concernait un having)

    le probleme cest que j'ai du mal a être plus clair car je comprends pas ce qui se passe.

    je cherche à afficher les valeurs de mon champ id_materiel présent dans la table materiel mais pas dans la table demande_materiel

  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 weedman59
    une discussion ne concernait pas le meme pb (cela concernait un having)
    Un HAVING COUNT(...)=0, donc si, c'est bien le même problème !


    Citation Envoyé par weedman59
    le probleme cest que j'ai du mal a être plus clair car je comprends pas ce qui se passe.
    Nous non plus on ne comprend pas ce qu'il se passe parce qu'on est sûr que les requêtes sont correctes. Donne le contenu de tes tables et le résultat obtenu, qu'on essaye de comprendre...
    "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
    Membre éclairé Avatar de PAYASS59
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2005
    Messages : 755
    Par défaut
    si tu veux tester je joints le code

    table materiel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Structure de la table `materiel`
    -- 
    CREATE TABLE `materiel` (
      `id_materiel` int(20) NOT NULL auto_increment,
      `nom_materiel` varchar(100) NOT NULL default '0',
      `id_type_materiel` int(20) NOT NULL default '0',
      `statut_materiel` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id_materiel`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
    -- 
    -- Contenu de la table `materiel`
    -- 
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (1, 'ORDINATEUR PORTABLE', 24, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (2, 'VIDÉOPROJECTEUR 1', 25, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (3, 'VIDÉOPROJECTEUR 2', 25, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (4, 'APPAREIL PHOTO COMPACT', 26, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (5, 'RÉTROPROJECTEUR', 27, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (6, 'COMBI-MAGNÉTOSCOPE', 29, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (7, 'GRILLES', 30, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (8, 'PANNEAUX PHOTOS', 31, 1);
    INSERT INTO `materiel` (`id_materiel`, `nom_materiel`, `id_type_materiel`, `statut_materiel`) VALUES (9, 'CAMESCOPE', 32, 1);

    table demande_materiel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    CREATE TABLE `demande_materiel` (
      `id_demande_materiel` int(11) NOT NULL auto_increment,
      `id_demandeur_materiel` int(11) NOT NULL default '0',
      `id_beneficiaire_materiel` int(11) NOT NULL default '0',
      `date_demande_materiel` date NOT NULL default '0000-00-00',
      `date_statut_materiel` date default NULL,
      `statut_materiel` int(11) default NULL,
      `date_solde_materiel` date default NULL,
      `objet_demande` longtext NOT NULL,
      `lieu_utilisation` longtext NOT NULL,
      `commentaire` longtext,
      `id_type_materiel` varchar(11) NOT NULL default '0',
      `id_materiel` int(11) default NULL,
      `date_debut_reservation` date NOT NULL default '0000-00-00',
      `creneau_debut_reservation` int(11) NOT NULL default '0',
      `date_fin_reservation` date NOT NULL default '0000-00-00',
      `creneau_fin_reservation` int(11) NOT NULL default '0',
      `date_debut_demandeur` date NOT NULL default '0000-00-00',
      `heure_debut_demandeur` time NOT NULL default '00:00:00',
      `date_fin_demandeur` date NOT NULL default '0000-00-00',
      `heure_fin_demandeur` time NOT NULL default '00:00:00',
      `id_realisateur_materiel` int(11) default NULL,
      `retour_materiel` tinyint(4) NOT NULL default '0',
      PRIMARY KEY  (`id_demande_materiel`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
    -- 
    -- Contenu de la table `demande_materiel`
    -- 
    INSERT INTO `demande_materiel` (`id_demande_materiel`, `id_demandeur_materiel`, `id_beneficiaire_materiel`, `date_demande_materiel`, `date_statut_materiel`, `statut_materiel`, `date_solde_materiel`, `objet_demande`, `lieu_utilisation`, `commentaire`, `id_type_materiel`, `id_materiel`, `date_debut_reservation`, `creneau_debut_reservation`, `date_fin_reservation`, `creneau_fin_reservation`, `date_debut_demandeur`, `heure_debut_demandeur`, `date_fin_demandeur`, `heure_fin_demandeur`, `id_realisateur_materiel`, `retour_materiel`) VALUES (1, 51538488, 51538488, '2006-04-26', '2006-04-26', 2, NULL, 'grosse présentation...ça va être chaud', 'le stade de france', '', '25', 2, '2006-05-12', 2, '2006-05-16', 1, '2006-05-15', '08:00:00', '2006-05-15', '18:00:00', NULL, 0);
    INSERT INTO `demande_materiel` (`id_demande_materiel`, `id_demandeur_materiel`, `id_beneficiaire_materiel`, `date_demande_materiel`, `date_statut_materiel`, `statut_materiel`, `date_solde_materiel`, `objet_demande`, `lieu_utilisation`, `commentaire`, `id_type_materiel`, `id_materiel`, `date_debut_reservation`, `creneau_debut_reservation`, `date_fin_reservation`, `creneau_fin_reservation`, `date_debut_demandeur`, `heure_debut_demandeur`, `date_fin_demandeur`, `heure_fin_demandeur`, `id_realisateur_materiel`, `retour_materiel`) VALUES (2, 51538488, 51538488, '2006-04-26', '2006-04-27', 1, '2006-04-27', 'vggggg', 'fggggggggggg', '', '25', 2, '2006-05-12', 2, '2006-05-12', 2, '2006-05-12', '15:00:00', '2006-05-12', '17:00:00', NULL, 0);
    INSERT INTO `demande_materiel` (`id_demande_materiel`, `id_demandeur_materiel`, `id_beneficiaire_materiel`, `date_demande_materiel`, `date_statut_materiel`, `statut_materiel`, `date_solde_materiel`, `objet_demande`, `lieu_utilisation`, `commentaire`, `id_type_materiel`, `id_materiel`, `date_debut_reservation`, `creneau_debut_reservation`, `date_fin_reservation`, `creneau_fin_reservation`, `date_debut_demandeur`, `heure_debut_demandeur`, `date_fin_demandeur`, `heure_fin_demandeur`, `id_realisateur_materiel`, `retour_materiel`) VALUES (3, 51524494, 51524494, '2006-04-27', NULL, NULL, NULL, 'ffffffff', 'ffffffffffffffffffff', 'fffffff', '26', NULL, '2006-04-28', 1, '2006-05-01', 1, '2006-04-29', '10:10:00', '2006-04-30', '10:00:00', NULL, 0);
    INSERT INTO `demande_materiel` (`id_demande_materiel`, `id_demandeur_materiel`, `id_beneficiaire_materiel`, `date_demande_materiel`, `date_statut_materiel`, `statut_materiel`, `date_solde_materiel`, `objet_demande`, `lieu_utilisation`, `commentaire`, `id_type_materiel`, `id_materiel`, `date_debut_reservation`, `creneau_debut_reservation`, `date_fin_reservation`, `creneau_fin_reservation`, `date_debut_demandeur`, `heure_debut_demandeur`, `date_fin_demandeur`, `heure_fin_demandeur`, `id_realisateur_materiel`, `retour_materiel`) VALUES (4, 51538488, 51538488, '2006-04-27', '2006-04-27', 2, NULL, 'bv', 'vchvc', 'vcbcvb', '32', 9, '2006-04-28', 1, '2006-05-01', 1, '2006-04-30', '10:00:00', '2006-04-30', '11:00:00', NULL, 0);

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

Discussions similaires

  1. Evalutation d'expression logique/booleenne
    Par eesteban dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 16/06/2004, 14h58
  2. Détection des disques physiques et logiques
    Par TheBigMac dans le forum Assembleur
    Réponses: 3
    Dernier message: 10/06/2004, 21h08
  3. Port parallèle et ou logique
    Par declencher dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2004, 19h02
  4. Un lecteur logique caché!!!
    Par Cyberman dans le forum Composants
    Réponses: 3
    Dernier message: 05/10/2003, 23h16
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

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