Programmation » [SQL] LEFT JOIN Partiel
Catégorie:  
« Sujet précédent
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 16/06/2008 @ 16:21:38, Par blietaer
ma question de la shoutbox était : Peut-on faire un LEFT JOIN sur une partie d'un tableau ?

En fait je fais sans doute de la culpabilité pour le moteur SQL, mais je me dis que si je colle une table à une autre sur base d'une clé primaire et unique, pour des millions de données, je vais le couler.... je voudrais donc réduir ma query pour une "fenêtre" temporelle (1h, 1 journée,..)


Or une quelconque clause WHERE interviendrait seulement _après_ que le JOIN des tables soit effectué....


...non? :ohwell: :roll:
Cessez d'être Vrai, Soyez Gentil.
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 16/06/2008 @ 16:22:54, Par blietaer
en fait l'intérêt du LEFT JOIN ici est surtout de faire apparaître les lignes de la table A qui ne trouve pas leur petit frère dans la table B (LEFT JOIN print bien les trous aussi, au contraire de RIGHT JOIN...)
Cessez d'être Vrai, Soyez Gentil.
rfr
Haut  Bas
ProfilPrivéEmailSite InternetBlog
Msn: rfr@inter-land.net
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 16/06/2008 @ 20:01:14, Par rfr
Et si tu crées des vues sur les tables qui ne contiendraient que les données pertinentes, ça n'aiderait pas le moteur SQL?
Je n'ai rien à voir avec ovh tout court
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 16/06/2008 @ 20:50:04, Par kortenberg
j'incrémente à la proposition de Rfr.
sinon select imbriqués
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 16/06/2008 @ 21:10:09, Par gizmo
Et si tu crées des vues sur les tables qui ne contiendraient que les données pertinentes, ça n'aiderait pas le moteur SQL?


Non. Le query plan sera vraissemblablement le meme vu que la vue ne contiendrait que des jointures statiques, tout comme la jointure.

j'incrémente à la proposition de Rfr.
sinon select imbriqués


Les select imbriques sont une arme tres dangereuse a double tranchant, ca peut completement te plomber les perfs car la query imbriquee devient bloquante pour la query superieure.

Pour en revenir au probleme. Il est tout a fait possible de mettre une condition dans la ON clause pour diminuer le nombre de jointure, mais attention car si cela est applique sur la mauvaise table, tu te retrouveras avec des lignes en plus.

De toute facon, le query plan est le meilleur outil pour valider la valeur d'une query. Ou bien, le Quest Query Optimizer qui est surpuissant mais payant.
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 17/06/2008 @ 08:38:36, Par blietaer

Il est tout a fait possible de mettre une condition dans la ON clause pour diminuer le nombre de jointure


VOILA !!!!

ce serait tout à fait cela!!!!

.....et comment?
Cessez d'être Vrai, Soyez Gentil.
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 17/06/2008 @ 09:08:46, Par kortenberg
Il est tout a fait possible de mettre une condition dans la ON clause pour diminuer le nombre de jointure,...
faux avec mysql
Citation de: "http://dev.mysql.com/doc/refman/5.0/fr/left-join-optimization.html"
Toutes les conditions du LEFT JOIN sont transmises à la clause WHERE.
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 17/06/2008 @ 10:22:01, Par blietaer
oui mais je suis sous posgress...
Cessez d'être Vrai, Soyez Gentil.
Lien direct vers ce messageEditer Citer Ajouter ce message en quote multiple Supprimer Haut Bas
[SQL] LEFT JOIN Partiel
Publié le 17/06/2008 @ 13:51:58, Par gizmo
faux avec mysql


Je pensais qu'on parlait de DBMS... :ohwell:
Répondre - Catégorie:  
Répondre
Gras [b]Texte[/b]Italique [i]Italique[/i]Souligné [u]Souligné[/u]Barré [strike]Barré[/strike]
Courriel [email=nobody@nobody.org]Nom[/email]Lien [url=http://www.website.com]Texte[/url]Ancre [anchor]Nom[/anchor]Image [img]http://www.website.com/image.jpg[/img]Insérer une image en provenance du site
Aligné à gauche [align=left]Texte[/align]Centré [align=center]Texte[/align]Aligné à droite [align=right]Texte[/align]Toute la largeur [align=justify]Texte[/text]
Couleur [color=#000000]Text[/color]Mise en forme [highlight=pascal]Texte[/highlight]WidgetsEmoticons :code: [:code]
PrévisualisationVérification de l'orthographe

Se connecter
Inscription
Mot de passe perdu


Connexion:
Utilisateur
Mot de passe
 






Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
Informaticien.be (Version PDA) - © 2004-2008 Akretio Powered by Kelare Sponsored by Intico Designed by The Art Company
The Akretio Network: Akretio - Kelare - OpenEvent - KelCommunity - KelCommerce - KelBlogs - PhotOsez