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 :

Requête SQL imbriquée


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Requête SQL imbriquée
    Bonjour
    je programme en java sur eclipse

    je voulais afficher en premier lieu les code_fil
    puis quand les code _fil sont affichés
    je choisis un code_fil
    et puis j'affiche les libelle_cycle concerant ce code_fil choisis.
    Une fois que les libelle_cycle sont affichées,j'affiche tous les libelle_niv(libelle_niveau concernant une libelle_cycle choisie)
    ensuite, j'affiche les libelle_classe quand je choisis un libelle_niv .
    enfin,j'affiche tous les Nom_et et Prenom_et(Nom_etudiant et Prenom_etudiant qui appartiennent à la classe choisie par libelle_cl).

    J'ai un problème dans la requète sql mais j'arrive pas à le résoudre(j'utilise Mysql Workbench 5.2 comme logiciel pour la base de données)


    voici le code java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public ResultSet inventaireEtudiant(connexionbase c,String Libellecl)throws SQLException,ClassNotFoundException
    {   ResultSet rs;
    	String query="SELECT e.Nom_et,e.Prenom_et  FROM etudiant e WHERE e.Code_et in" +
    			"(SELECT i.Code_et FROM est_inscrit i WHERE i.Libelle_cl ='"+Libellecl+"'";
        rs=c.stmt.executeQuery(query);
    	return rs;
    }

  2. #2
    Membre averti
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Points : 375
    Points
    375
    Par défaut
    Citation Envoyé par faithh Voir le message
    String query="SELECT e.Nom_et,e.Prenom_et FROM etudiant e WHERE e.Code_et in" +
    "(SELECT i.Code_et FROM est_inscrit i WHERE i.Libelle_cl ='"+Libellecl+"'";
    }
    avant l’exécution pourrais-tu faire un affichage à l'écran de ta requête "query",
    simplement pour voir si tes variables sont bien retranscrites.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    il manque une parenthèse sinon.

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par sweetasnz Voir le message
    avant l’exécution pourrais-tu faire un affichage à l'écran de ta requête "query",
    simplement pour voir si tes variables sont bien retranscrites.
    j'ai pas compris ce que tu voulais dire
    merci de me faire comprendre

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    pour ètre plus claire
    j'ai fait 4 méthodes :
    la première affiche les code_fil
    puis la deuxième affiche les libelle_cycle selon le code _fil choisi
    ensuite la troisième méthode qui affiche les libelle_niv selon la libelle_cycle choisi
    enfin la 4ème méthode qui affiche les Nom_et et Prenom_et selon la libelle_niv choisi

  6. #6
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Il veut avoir la requête une fois formée, telle qu'elle est envoyée dans la base.

    Sinon tu ne précises pas quel est ton problème ?
    - erreur --> message erreur ?
    - mauvais résultats ?
    ~ Lola ~

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Voici mon code java
    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
    34
    35
    36
    37
    38
    39
    40
    public ResultSet inventaireEtudiantFil(connexionbase c)throws SQLException,ClassNotFoundException
    {     
        ResultSet rs;
        String query2="select distinct cl.Code_fil from classe cl";
    	rs=c.stmt.executeQuery(query2);
     
    	return rs;
    }//fin de la méthode inventaireEtudiantFil
    public ResultSet inventaireEtudiantCycle(connexionbase c,String Codefil)throws SQLException,ClassNotFoundException
    {     
        ResultSet rs;
        String query2="select distinct cl.Libelle_cycle from classe cl WHERE Code_fil='"+Codefil+"'";
    	rs=c.stmt.executeQuery(query2);
     
    	return rs;
    }//fin de la méthode inventaireEtudiantCycle
    public ResultSet inventaireEtudiantNiv(connexionbase c,String Libellecycle)throws SQLException,ClassNotFoundException
    {     
        ResultSet rs;
        String query2="select distinct cl.Libelle_niv from classe cl WHERE cl.Libelle_cycle='"+Libellecycle+"'";
    	rs=c.stmt.executeQuery(query2);
     
    	return rs;
    }//fin de la méthode inventaireEtudiantNiv
    public ResultSet inventaireEtudiantClasse(connexionbase c,String Libelleniv)throws SQLException,ClassNotFoundException
    {     
        ResultSet rs;
        String query2="select distinct cl.Libelle_cl from classe cl WHERE cl.Libelle_niv='"+Libelleniv+"' ";
    	rs=c.stmt.executeQuery(query2);
     
    	return rs;
    }//fin de la méthode inventaireEtudiantClasse
     
    //inventaireEtudiant
    public ResultSet inventaireEtudiant(connexionbase c,String Libellecl)throws SQLException,ClassNotFoundException
    {   ResultSet rs;
    	String query="SELECT e.Nom_et,e.Prenom_et  FROM etudiant e WHERE e.Code_et in (SELECT i.Code_et FROM est_inscrit i WHERE Libelle_cl ='"+Libellecl+"')"; 
        rs=c.stmt.executeQuery(query);
    	return rs;
    }//La méthode inventaireEtudiant
    et dans mon main

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    try
    	{
    	//System.out.println(hdate);	
    		ResultSet ss;
    	ss=a.inventaireEtudiantFil(c);
       while(ss.next())
       {
    	  System.out.println(ss.getString("cl.Code_fil"));
       }
       c.closeConnexion();
       c.getConnexion();
       ResultSet se;
       se=a.inventaireEtudiantCycle(c,"E.I");
       while(se.next())
       {
    	  System.out.println(se.getString("cl.Libelle_cycle"));
       }
       c.closeConnexion();
       c.getConnexion();
       ResultSet sn;
       sn=a.inventaireEtudiantNiv(c,"2eme cycle");
       while(sn.next())
       {
    	  System.out.println(sn.getString("cl.Libelle_niv"));
       }
       c.closeConnexion();
     
       c.getConnexion();
       ResultSet sc;
       sc=a.inventaireEtudiantClasse(c,"2");
       while(sc.next())
       {
    	  System.out.println(sc.getString("cl.Libelle_cl"));
       }
       c.closeConnexion();
     
       c.getConnexion();
       ResultSet si;
       si=a.inventaireEtudiant(c,"groupe1");
       while(si.next())
       {System.out.println("nom");
    	  System.out.println(si.getString("e.Nom_et"));
    	  System.out.println("prenom");
    	  System.out.println(si.getString("e.Prenom_et"));
       }
       c.closeConnexion();
     
    	}
     
    	catch(Exception e)
    	        {
    	            e.printStackTrace();
    	        }
    l'erreur c'est qu'il ne tient pas compte de libelle_niv,libelle_cycle et code_fil
    pour afficher correctement les nom_et et prenom_et qui appartiennent à la classe désignée,au niveau choisi et au cycle indiqué.

  8. #8
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Citation Envoyé par faithh Voir le message
    voici mon code java
    Citation Envoyé par faithh Voir le message
    et dans mon main
    Désolée mais ici tu es dans le forum SQL on ne pourra pas t'aider vraiment sur ton problème avec juste ces informations.

    On veut que tu nous montre exclusivement ta requête SQL après que Java remplisse les champs manquants.
    ~ Lola ~

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par lola06 Voir le message
    Désolée mais ici tu es dans le forum SQL on ne pourra pas t'aider vraiment sur ton problème avec juste ces informations.

    On veut que tu nous montre exclusivement ta requête SQL après que Java remplisse les champs manquants.
    c'est un mauvais résultat
    la requête sql est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     query="SELECT e.Nom_et,e.Prenom_et  FROM etudiant e WHERE e.Code_et in (SELECT i.Code_et FROM est_inscrit i WHERE Libelle_cl ='"+Libellecl+"')";

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Et ce qu'on te demande depuis quelques messages, c'est de commencer par t'assurer que +Libellecl+ ait bien une valeur.
    Si cette variable Java est à NULL, la requête ne retournera forcément pas ce que tu en attends.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  11. #11
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Citation Envoyé par faithh Voir le message
    c'est un mauvais résultat
    la requète sql est la suivante :

    query="SELECT e.Nom_et,e.Prenom_et FROM etudiant e WHERE e.Code_et in (SELECT i.Code_et FROM est_inscrit i WHERE Libelle_cl ='"+Libellecl+"')";
    Oui je l'avais déjà vue.
    Ce qu'on veut c'est la requête après qu'elle soit remplie par java, soit avec la valeur de +Libellecl+
    ~ Lola ~

  12. #12
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Et ce qu'on te demande depuis quelques messages, c'est de commencer par t'assurer que +Libellecl+ ait bien une valeur.
    Si cette variable Java est à NULL, la requête ne retournera forcément pas ce que tu en attends.
    +Libellecl+ n'est pas nulle

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En es-tu sûr ?

    Si tu as le moyen d'afficher la requête rellement envoyée au serveur, c'est à dire avec la valeur de la variable, tu le seras.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  14. #14
    Membre averti
    Avatar de sweetasnz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 212
    Points : 375
    Points
    375
    Par défaut
    oui en effet, envoie nous simplement la valeur de la variable "query".
    c'est à dire la requete SQL une fois formée, donc juste avant le execute si tu préfères.
    Nous voudrions nous assurer que la synthaxe est bonne.
    commençons par le commencement.

Discussions similaires

  1. Requêtes SQL imbriquées
    Par zpliz dans le forum SQL
    Réponses: 5
    Dernier message: 25/03/2010, 09h58
  2. [MySQL] Requête sql imbriquée
    Par PIEPLU dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/01/2010, 08h44
  3. Requête SQL imbriqué, 3 tables, plusieurs colonnes
    Par opacho dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/07/2009, 09h45
  4. Requête SQL imbriquée
    Par cecile15 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/05/2009, 10h39
  5. Requête SQL imbriquées
    Par Fanette85 dans le forum ASP.NET
    Réponses: 20
    Dernier message: 05/10/2007, 14h12

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