Sujet: [SQL] LEFT JOIN Partiel
16/06/2008 @ 16:21:38: blietaer: [SQL] LEFT JOIN Partiel
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:
16/06/2008 @ 16:22:54: blietaer: [SQL] LEFT JOIN Partiel
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...)
16/06/2008 @ 20:01:14: rfr: [SQL] LEFT JOIN Partiel
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?
16/06/2008 @ 20:50:04: kortenberg: [SQL] LEFT JOIN Partiel
j'incrémente à la proposition de Rfr.
sinon select imbriqués
16/06/2008 @ 21:10:09: gizmo: [SQL] LEFT JOIN Partiel
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.
17/06/2008 @ 08:38:36: blietaer: [SQL] LEFT JOIN Partiel

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?
17/06/2008 @ 09:08:46: kortenberg: [SQL] LEFT JOIN Partiel
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.
17/06/2008 @ 10:22:01: blietaer: [SQL] LEFT JOIN Partiel
oui mais je suis sous posgress...
17/06/2008 @ 13:51:58: gizmo: [SQL] LEFT JOIN Partiel
faux avec mysql


Je pensais qu'on parlait de DBMS... :ohwell:
Retour