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 :

Décomposer une chaine de requête SQL


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut Décomposer une chaine de requête SQL
    Bonjour,

    j'ai une requête sql par exemple : "select t1.firstname,t2.lastname,t3.address,t4.country from table1 t1 , table2 t2, table3 t3 where t1.row_id=t2.row_id and t2.row_id=t3.row_id "

    est ce qu'il y a un moyen de décomposer cette requête pour savoir le nombre de jointure faite.

    merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Salut,

    Il faut que tu cherches des caractères ou termes spécifiques dans la String qui traduisent une jointure, à priori, après le mot clé 'where', comptage de '=' ...

    Attention du coup aux requêtes avec filtre (where name = 'tartanpion') ...
    Enfin à toi de trouver sur quelles spécificités tu veux compter tes jointures!

  3. #3
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Salut,

    Il faut que tu cherches des caractères ou termes spécifiques dans la String qui traduisent une jointure, à priori, après le mot clé 'where', comptage de '=' ...

    Attention du coup aux requêtes avec filtre (where name = 'tartanpion') ...
    Enfin à toi de trouver sur quelles spécificités tu veux compter tes jointures!
    j'ai étudie les cas ou on utilise les mot inner join, left join ...
    il me reste le cas ou on fait la jointure manuellement " from table1, table2 where table1.index = table2.index".

    quel sont les méthodes que je peux appliquée sur les chaines pour la décomposé.

    merci d'avance

  4. #4
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Points : 852
    Points
    852
    Par défaut
    Pour les jointures naturelles, essaie un substring à partir du mot where jusqu'à la fin, et un split sur '=' sur le résultat. C'est de la bidouille à ce niveau la... mais bon!

    J'te laisse gérer les exceptions du style filtre & co.

  5. #5
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    est ce que les expressions régulières ne règle pas l'affaire?

    est ce que qq connait comment les utilisées

    merci d'avance

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par Sfaxiano Voir le message
    est ce que les expressions régulières ne règle pas l'affaire?

    est ce que qq connait comment les utilisées

    merci d'avance
    C'est marrant ce que tu dis, c'est un peu comme si tu disais "Je dois construire une maison, est-ce qu'une truelle ne règle pas l'affaire ?

    Moi ce que j'en dit:
    Jointure = alias pour les tables (T1, T2,T3,...). Tu peux récupérer tes alias entre le from et le where (attention, le SQL n'est pas sensible à la casse).

    A partir du where, il faut regarder autour des signes '='. Si tu trouve des éléments de ton ensemble d'alias suivi d'un . de part et d'autre du =, tu as gagné .

    Après, il faut gérer les select imbriqués, toussa quoi .

    Pour en revenir aux expressions régulières ouais ça pourra aider une fois que tu auras bien cerné ton problème. Après t'en faire une description, ça va être un peu long :s

  7. #7
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Drawingrom Voir le message
    C'est marrant ce que tu dis, c'est un peu comme si tu disais "Je dois construire une maison, est-ce qu'une truelle ne règle pas l'affaire ?

    Moi ce que j'en dit:
    Jointure = alias pour les tables (T1, T2,T3,...). Tu peux récupérer tes alias entre le from et le where (attention, le SQL n'est pas sensible à la casse).

    A partir du where, il faut regarder autour des signes '='. Si tu trouve des éléments de ton ensemble d'alias suivi d'un . de part et d'autre du =, tu as gagné .

    Après, il faut gérer les select imbriqués, toussa quoi .

    Pour en revenir aux expressions régulières ouais ça pourra aider une fois que tu auras bien cerné ton problème. Après t'en faire une description, ça va être un peu long :s
    mercii pour la réponse

    c'est ce que j'ai fait,

    pour les requêtes imbriquées je fais un split lorsque je trouve un IN et je fais un appel récursif à ma méthode.

Discussions similaires

  1. Suppression d'espace dans une rubrique de requête sql
    Par GodGives dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/12/2007, 17h52
  2. Création d'une table par requête SQL
    Par mister3957 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 26/05/2006, 09h30
  3. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 22h10
  4. [Tableaux] Décomposer une chaine de caratères
    Par bianconeri dans le forum Langage
    Réponses: 8
    Dernier message: 06/03/2006, 15h43
  5. Réponses: 2
    Dernier message: 30/01/2006, 12h05

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