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

Langage SQL Discussion :

selectionner un resultat qui n'est pas dans une autre requete


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de yosraisi
    Inscrit en
    Février 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 136
    Points : 67
    Points
    67
    Par défaut selectionner un resultat qui n'est pas dans une autre requete
    bonjour

    je viens de selectionner une liste des fournisseurs de ma table famile,four_choisi, ,fam_four et fournisseur
    le principe c'est de selectionnner les fournisseurs qui se trouvent dans la table fournisseur mais qui ne sont pas choisie c'est à dire dans la table four_choisi
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
     
    $req=SELECT Distinct niveau,nom_four,adr_four,tel_four_1,four_fam.num_four,four_fam.id_fam,detail_consultation.id_categ FROM fournisseur,famille,four_fam,categorie,detail_consultation
     
    		 where detail_consultation.num_consult='".$id."' and 
     
    		detail_consultation.id_categ=categorie.id_categ 
    		and categorie.id_fam=famille.id_fam 
    		and fournisseur.num_four=four_fam.num_four and 			
    		famille.id_fam=four_fam.id_fam group by (four_fam.num_four);
    cette requête fournie tout les fournisseurs possible mais je veux que le fournisseurs deja existant dans la table four_choisie de même num_consult ne soit pas dans la liste
    merci de m'aider

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 098
    Points : 28 409
    Points
    28 409
    Par défaut
    En utilisant des jointures normalisées (INNER JOIN), la requête serait plus lisible et plus facile à faire évoluer.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club Avatar de yosraisi
    Inscrit en
    Février 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 136
    Points : 67
    Points
    67
    Par défaut
    merci pour la repose mais je ne sais pas travailler avec
    peux tu m'expliquer un peu merci

  4. #4
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    tout est ici il suffit de lire

    bonne lecture

    Citation Envoyé par yosraisi Voir le message
    merci pour la repose mais je ne sais pas travailler avec
    peux tu m'expliquer un peu merci
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 847
    Points : 52 961
    Points
    52 961
    Billets dans le blog
    6
    Par défaut
    Difficile de vous repndre tant votre demande est confuse et exempt d'explistion. Merci donc de respecter ceci : http://www.developpez.net/forums/ann....php?f=37&a=69
    Ce sont les règles élémentaires de postage dans le forum.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT niveau, nom_four, adr_four, tel_four_1, 
           four_fam.num_four, four_fam.id_fam, detail_consultation.id_categ 
    FROM   fournisseur AS FR,
           INNER JOIN four_fam AS FF             ON FR.num_four = FF.num_four
           INNER JOIN famille AS FM              ON FM.id_fam = FF.id_fam
           INNER JOIN categorie AS CG            ON CG.id_fam = FM.id_fam
           INNER JOIN detail_consultation AS DC  ON DC.id_categ = CG.id_categ
           INNER JOIN four_choisie AS FC         ON FR.??? = FC.???
    WHERE  detail_consultation.num_consult='".$id."' 
    GROUP BY (four_fam.num_four);
    Quand à "num_consult" d'ou sort-il, que vient-il faire ???

    Merci d'être plus explicite et de donner un exemple.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre du Club Avatar de yosraisi
    Inscrit en
    Février 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 136
    Points : 67
    Points
    67
    Par défaut
    merci pour le code et désolé SQLpro

    pour l'exemple si je choisie la première fois le fournisseur "a" par exemple dans la liste qui comprend "a","b","c" ,"d"

    au prochain affichage je veux que la liste comprend uniquement "b","c","d" et "a" non car il a était choisie le tour vient au reste de la liste.
    j'ai copier ton code et j'ai fais ces modification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT DISTINCT niveau, nom_four, adr_four, tel_four_1, 
           FF.num_four,FF.id_fam, DC.id_categ 
    FROM   fournisseur AS FR
           INNER JOIN four_fam AS FF             ON FR.num_four = FF.num_four 
           INNER JOIN famille AS FM              ON FM.id_fam = FF.id_fam
           INNER JOIN categorie AS CG            ON CG.id_fam = FM.id_fam
           INNER JOIN detail_consultation AS DC  ON DC.id_categ = CG.id_categ
           INNER JOIN four_choisie AS FC         ON FR.num_four = FC.num_four
    WHERE  DC.num_consult='".$id."' 
    GROUP BY (FF.num_four)
    pour le num_cnsult il est le numéro de la consultation à traiter il va prendre la valeur dans $id qui est déjà posté car chaque consultation à sa propre liste suivant les articles choisis
    je résultat afficher c'est toute la liste au départ ensuite si je choisie un il ne serais pas dans la liste mais cette requête me donne toujours toute la liste

    merci de m'aider et désolé encore SQLpro

  7. #7
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Pourquoi ne pas utiliser le NOT IN ?
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



Discussions similaires

  1. Chercher un enregistrement qui N'EST PAS dans une table
    Par ZeBandit dans le forum Requêtes
    Réponses: 13
    Dernier message: 05/05/2015, 11h02
  2. [MySQL] Jointure: récupérer joueur qui n'est pas dans l'autre table
    Par Snipy dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/10/2010, 15h07
  3. elements qui n'est pas dans une liste
    Par KEnder dans le forum Général Python
    Réponses: 2
    Dernier message: 16/05/2008, 01h52
  4. Réponses: 6
    Dernier message: 09/01/2008, 11h56
  5. Réponses: 2
    Dernier message: 11/11/2007, 16h49

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