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

JDBC Java Discussion :

Problème de Jointure entre plusieurs tables


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Points : 56
    Points
    56
    Par défaut Problème de Jointure entre plusieurs tables
    Bonjour,

    Voila j'ai cette requète a executer ! en la testant avec phpmyadmin par exemple elle me retourne le bon resultat! Cepandant quand je l'execute avec mon code Java rien n'est retourné (valeur NULL) !

    Mon code fonctionne puisque j'ai tester cette requète sans jointure et il me retourne bien le bon résultat !

    voila la requète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Demande_Intervention.DateDemande, Demande_Intervention.ID_Demande, Criticite.Libelle_Criticite, Etat.Libelle_Etat
    FROM Demande_Intervention, Criticite, Etat
    WHERE Demande_Intervention.ID_Etat=Etat.ID_Etat and Demande_Intervention.ID_Criticite=Criticite.ID_Criticite and Demande_Intervention.ID_Utilisateur = $Demandeur
    ORDER BY Demande_Intervention.ID_Demande DESC LIMIT 20
    Le problème doit venir des jointures ! JDBC n'accepte peut etre pas les jointures MaTable.Monchamps ?

    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Peux-tu montrer le code java ?
    C'est quoi ce $Demandeur, du php ?
    Idem pour LIMIT 20, c'est pas du JDBC ça...

    Sinon, il n'y a pas de problème pour les requêtes nomTable.nomChamp...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Points : 56
    Points
    56
    Par défaut
    VOILA la portion de code :

    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
     
     
    // Création de la requète
    			String Requete = "SELECT Demande_Intervention.ID_Demande, Demande_Intervention.DateDemande, Criticite.Libelle_Criticite, Etat.Libelle_Etat " +
    					"FROM Demande_Intervention, Criticite, Etat " +
    					"WHERE Demande_Intervention.ID_Utilisateur = '1' AND Demande_Intervention.ID_Criticite=Criticite.ID_Criticite AND Demande_Intervention.ID_Etat=Etat.ID_Etat" +
    					"ORDER BY Demande_Intervention.ID_Demande DESC LIMIT 20";
     
    			// Execution et recupération du résultat
    			ResultSet mon_resultat = ConnexionBddMySQL().executeQuery(Requete);
     
    			// Traitemant du résultat
    			if(!mon_resultat.wasNull()){
    				while (mon_resultat.next()) {
    					ListeActions[i][1] = mon_resultat.getString(2);
    					ListeActions[i][2] = "Demande d'intervention";
    					ListeActions[i][3] = mon_resultat.getString(1);
     
    					ListeActions[i][4] = mon_resultat.getString(3);
     
    					ListeActions[i][5] = mon_resultat.getString(4);
    					i++;
    				}
    			}

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Essaye d'enlever le LIMIT 20 dans ta requête, si tu veux ne récupérer que 20 enregistrements max, il faut passer par
    Mis à part ça, je ne vois pas d'erreur... (mais il est tard...)

    Quelle est l'erreur renvoyée au juste ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Points : 56
    Points
    56
    Par défaut
    Et bien pour le LIMIT dans d'autre requète ca fonctionné !
    Et de toute facon avec ou sans l'erreur reste

    En faite c'est pas qu'il me retourne une erreur c'est qu'il ne me retourne rien surtout lol il me retourn que des valeur NULL pour chaque champs

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu te connectes à la bonne base au moins ?
    Peux-tu montrer le code pour la création de la connexion ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "WHERE Demande_Intervention.ID_Utilisateur = '1' AND Demande_Intervention.ID_Criticite=Criticite.ID_Criticite AND Demande_Intervention.ID_Etat=Etat.ID_Etat"
    Ajoute un espace à la fin de ta ligne, sinon, le "order by" sera collé.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    Essaie plutôt ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String Requete = "SELECT Demande_Intervention.ID_Demande, Demande_Intervention.DateDemande, "
      +"Criticite.Libelle_Criticite, Etat.Libelle_Etat "
      +"FROM (Demande_Intervention INNER JOIN Criticite ON Demande_Intervention.ID_Criticite=Criticite.ID_Criticite ) "
      +"INNER JOIN Etat ON Demande_Intervention.ID_Etat=Etat.ID_Etat "
      +"WHERE Demande_Intervention.ID_Utilisateur = '1' LIMIT 20";
    et joue sur le type de jointure au cas où (right left ou inner join).
    Pour ma part souvent je construis mes rqtes dans access et les transpose car les jointures posent souvent problème. Access te fournit un éditeur simple et permet une vue rapide du résultat sans se casser la tête, tu récupères le sql et le transpose.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Points : 56
    Points
    56
    Par défaut
    Nn mais je sais pas ma requète fonctionne tres bien si je la test avec phpmyadmin ou MySQL Query Browser ! mais ca deconne juste quand je la traite avec mon code JAVA !

    Si j'utilise cette requète sans les jointure ca fonctionne et des que je rajoute un jointure genre cette pour la criticite et bien plus rien !

    Je comprend pas la lol

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Si tu as exécuté exactement cette requête avec mySQL Query Browser et qu'il te renvoie des données, le problème est ailleurs...
    Peux-tu montrer le code de ConnexionBddMySQL() ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    Il te faut décorréler le fonctionnement de phpmyadmin et de java qui dépend du jar utilisé.

    Prends un jar plus récent (5.1.5) et reteste. Si ça ne fonctionne toujours pas il te faudra utiliser les jointures sql.

  12. #12
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    est ce que le problème ne viendrait pas de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!mon_resultat.wasNull()){
    Comme le dis la javadoc :

    Citation Envoyé par javadoc
    Reports whether the last column read had a value of SQL NULL. Note that you must first call one of the getter methods on a column to try to read its value and then call the method wasNull to see if the value read was SQL NULL.
    enfin bon, il faut faire un next avant pour récupérer la bonne valeur. Là à mon avis tu récupères toujours faux, ce qui explique que tu aies l'impression que ta requete ne retourne rien ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par in Voir le message
    est ce que le problème ne viendrait pas de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!mon_resultat.wasNull()){
    Oups, j'avais pas fait attention...
    Tu voulais peut-être faire le test suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ( mon_resultat != null )
    {
       while ( mon_resultat.next() )
       {
          ...
       }
    }
    Dans tous les cas, je te déconseille ce test, le resultSet sera null si tu as une erreur dans ta requête, pas si aucune donnée n'est renvoyée.
    Bref, en clair, l'erreur NullPointerException te permettra de trouver une erreur de requête.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/05/2015, 13h36
  2. Problème de jointures entre 3 tables
    Par Ben001 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/09/2009, 19h04
  3. [MySQL] Probléme de jointure entre deux tables
    Par super-java dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/06/2008, 14h49
  4. Problème de jointure entre 2 tables Access
    Par MITCH31 dans le forum VBA Access
    Réponses: 8
    Dernier message: 14/12/2005, 14h31
  5. Problème de jointure entre 3 tables
    Par Yphon dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/09/2005, 15h58

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