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 :

[jointures](debutant) Inner join ou requetes simples?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut [jointures](debutant) Inner join ou requetes simples?
    Bonjour,
    Je dois faire une sélection dans une table par rapport à un critère qui se trouve 4 tables plus loin (liaison des tables par ID). A priori j'ai deux facons de faire:
    - select champ from toutes mes tables where toutes mes liaisons
    - select champ from maTable join-on join-on join-on ... where maLiaisonRestrictive

    D'après mes recherches, il est préférable d'utiliser les inner join. MAIS en testant je trouve que ma requete est 2 fois plus rapide en utilisant le 1er choix. Du coup, je ne sais pas trop quoi choisir.
    En quoi le 1er choix n'est-il pas propre?
    Pourquoi le 2e choix est plus lent?

    Merci de me guider...

  2. #2
    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
    Bonjour,

    Pour les INNER JOIN, il me semble que c'est une norme du langage SQL et donc a préferer tout simplement. En ce qui concerne le temps de traitement ca me parait bizarre cette différence, je ne pourrais pas te l'expliquer.

    @+

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 48
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    Les inner sont preferable, il y a des chance que tes index de tables soit placés sur toutes mes liaisons. Il est normal que ce soit plus rapide si tu met la totalité de la clef de l'index.

    A+

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Bien compris pour le respect de la norme.
    En fait est-ce que ca ne serait pas dû tout simplement à la longueur de la requete? Car celle contenant les inner join est nettement plus longue... et il m'est difficile de renommer les tables puisque qu'elle est construite sur des appels de fonctions imbriquées (c'est dans le cadre d'une recherche multicriteres).

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Bon j'ai trouvé mon problème n'était pas d'ordre SQL, mais une erreur d'inattention dans une boucle qui générait ma requete... ce qui multipliait la requete 8 fois de suite avec des INTERSECT...
    Problème résolu!

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

Discussions similaires

  1. Jointure avec INNER JOIN
    Par antinarius dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/02/2013, 14h52
  2. [MySQL]simple requete INNER JOIN
    Par jpeg1st dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/12/2006, 14h04
  3. Problème de jointure avec INNER JOIN et LEFT OUTER JOIN
    Par tonio-lille dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/02/2006, 12h45
  4. inner join pour requete update ne marche pas
    Par Garra dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/01/2006, 13h14
  5. Erreur lors d'une requete INNER JOIN
    Par k-lendos dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/03/2004, 15h09

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