Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2318 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  INNER JOIN

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

INNER JOIN

n°570485
Shogun2002
Posté le 19-11-2003 à 10:20:06  profilanswer
 

Qu'elle est l'utilité des inner join si on peut faire les jointures dans la clauses where ?
 
Pour des jointures assez complexes, les inner join sont meilleurs pour les SGBD (temps d'execution) ?
 
Et des INNER Join imbriqué les uns dans les autres, cela n'a aucune utilité pour de l'optimisation ? Cela revient au même que si on les met les un en dessous des autres ?


Message édité par Shogun2002 le 19-11-2003 à 10:22:49
mood
Publicité
Posté le 19-11-2003 à 10:20:06  profilanswer
 

n°570491
Shogun2002
Posté le 19-11-2003 à 10:23:37  profilanswer
 

Sinon vous preferez utiliser les INNER JOIN ou les jointures dans la clauses Where ?

n°570502
vttman2
Je suis Open ...
Posté le 19-11-2003 à 10:34:47  profilanswer
 

Je cite
(http://sqlpro.developpez.com/SQL_AZ_3.html#JOIN_where_from)
 
"UN CONSEIL IMPORTANT  
Dans la mesure du possible, utilisez toujours un opérateur de jointure normalisé  (mot clef JOIN).  
 
En effet :  
 
les jointures faites dans la clause WHERE (ancienne syntaxe de 1986 !) ne permettent pas de faire la distinction de prime abord entre ce qui relève du filtrage et ce qui relève de la jointure.  
Il est à priori absurde de vouloir filtrer dans le WHERE (ce qui restreint les données du résultat) et de voiloir "élargir" ce résultat par une jointure dans la même clause WHERE de filtrage.  
La lisibilité des requêtes est plus grande en utilisant la syntaxe à base de JOIN, en isolant ce qui est du filtrage et de la jointure, mais aussi en isolant avec clarté chaque condition de jointures entre chaque couples de table  
L'optimisation d'exécution de la requête est souvent plus pointue du fait de l'utilisation du JOIN.  
Lorsque l'on utilise l'ancienne syntaxe et que l'on supprime la clause WHERE a des fins de tests, le moteur SQL réalise le produit cartésiens des tables ce qui revient la plupart du temps à mettre à genoux le serveur ! "
 
 

n°570506
Shogun2002
Posté le 19-11-2003 à 10:39:05  profilanswer
 

Ok

n°570509
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 19-11-2003 à 10:40:33  profilanswer
 

Les jointures par WHERE sont dépassées. La norme SQL ANSI-92 recommande l'utilisation d'INNER JOIN.
Le problème avec la clause WHERE c'est qu'elle est exécutée une fois que le recordset est construit en mémoire. Chaque ligne doit être vérifiée pour voir si le WHERE est vrai ou faux. S'il est vrai, la ligne est conservée, sinon la ligne est supprimée.
La clause INNER JOIN est utilisée pendant la création du recordset, ce qui veut dire que le recordset est plus petit car seules les lignes concernées y sont incluses. La vitesse en est grandement améliorée.
 
INNER JOIN rulez !

n°570511
Shogun2002
Posté le 19-11-2003 à 10:42:59  profilanswer
 

Sinon des inner join imbriqué les uns dans les autres, cela n'a aucune utilité ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  INNER JOIN

 

Sujets relatifs
Grosse lenteur de left joinplusieur outer join, c'est possible????
Left join est ce la bonne solution?[SQL ACCESS] problème de syntaxe avec les JOIN
Pb de syntaxe sur des JOINLEFT JOIN
Différence entre INNER, JOIN, LEFT, RIGHT.....etcA propos des inner class, et des inner class statiques
PB LEFT JOIN sous ACCESSclause Inner Join,left join, Right join Dans quel environement??
Plus de sujets relatifs à : INNER JOIN


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)