Bonjour François,J'ai un peu hésité entre "non equi-jointure" et "théta-jointure" me demandant ce qui était le plus compréhensible pour les anglo-saxons :-) Mais si l'on veut être rigoureux il faut plutôt dire "théta-jointure" qui est le terme utilisé en algèbre relationnelle (et non pas non-equi jointure qui est présenté comme simplement une caractéristique de la théta-jointure). Ça me fait un peu bizarre de dire "equi-join" ou "théta-join" (c'est vraiment du franglais : moitié français, moitié anglais :-)) mais bon, si c'est compréhensible...
Je ne suis pas tout à fait d'accord sur ta 2ème remarque. Pour moi il y a 2 catégories de jointures : - la jointure interne (inner) ou "classique" (equi-jointure) ne renvoie des lignes que si la colonne de jointure d'une table est égal à la colonne de jointure de l'autre table. - la jointure externe (outer) affiche toutes les lignes d'une table qu'il y ait ou non correspondance avec l'autre table de jointure ( les colonnes pour lesquelles il n'y a pas de correspondance sont remplies avec la valeur NULL).La jointure externe se subdivise en jointure gauche, jointure droite et jointure complète (FULL).
Ceci dit, c'est juste pour le plaisir de discuter avec toi :-) Dans mes tests je n'ai pas tellement pris en considération ces aspects théoriques. J'ai juste monté une petite batterie de tests comportant quelques types de jointures, en vrac, pour montrer que des requêtes faisant appel à une jointure ne donnaient pas des résultats corrects.
J'attends la réponse de Sophie pour tenter :-) d'ouvrir le problème dans bugzilla.
Bonne journée, Bernard Le 30/10/2010 07:25, François Gatto a écrit :
Bonjour Bernard, Le 29/10/2010 23:10, ribotb a écrit :Bonsoir Sophie, J'ai préparé les éléments pour ouvrir un problème dans bugzilla. J'ai un petit souci avec deux termes d'algèbre relationnelle que je ne sais pas traduire : il s'agit de equi-jointure et théta-jointure. Tu crois que je peux laisser ça comme ça ?Tu peux simplement les dénommer "equi join" et "theta join".Les théta-jointures étant des "non-equi joins", tu peux employer cette dénomination "non-equi join".Précision : "inner join" et "outer join" sont des subdivisions de "equi join". Francois GattoVoici comment pourrait se présenter la fiche : Summary : SQL queries involving a join make incorrect results. Description : Queries are created by clicking the icon in the left pane application window's databases. The following cases were tested: - "equi jointure" : a simple join that displays the sex label for each student - inner join : same result as equi-jointure - self join : displays the number of students who have a note in the subject number 1 less than the note obtained in the subject number 2. - left outer join : displays all students having whether or not, a note. If a student does not have a note, the field Numetu of the corresponding table (NOTES) will be NULL. - right outer join : displays all students who have at least one note - "théta-jointure" : displays for each student, how many are before him on the alphabetical list names. Queries with union (UNION, UNION ALL) and intersection (INTERSECT) of tables gave correct results. Attachment : Ma mini-base de test, les résultats obtenus avec OOo 3.2.1, les résultats obtenus avec LibO 3.3.0 beta 2 Merci de me donner ton avis. Bernard Le 26/10/2010 18:32, Sophie Gautier a écrit :Bonjour, 2010/10/26 François Gatto<cesculino@gmail.com>:Bonjour, Le 26/10/2010 16:07, pierre-yves.samyn a écrit :BonjourMessage du 24/10/10 19:56 De : "ribotb" Objet : [fr-discuss] [Base] jointures J'ai préparé une petite base avec toutes sortes de requêtes dejointures. Il n'y en a qu'une seule qui semble fonctionner avec LibO.Quelques précisions : Je reproduis le problème dans mon environnement : XP - SP3 et LibO "courante" 330m9(Build:1)Il suffit toutefois de passer en mode "Exécuter directement le SQ" pourque les requêtes fonctionnent. Il va de soi que je ne considère pas cela comme satisfaisant. C'est juste un élément d'information. Par ailleurs, je signale ici, mais je pense ouvrir un fil (poster une RFE sur bugzilla) que le mode ébauche de LibO transforme de la même manière que OOo les instructions SQL de jointure autre que naturelles. Exemple, ceci : SELECT DISTINCT "E"."Nometu", "N"."Numetu" FROM "ETUDIANT" "E" LEFT OUTER JOIN "NOTES" "N" ON "E"."Numetu" = "N"."Numetu" Devient, après passage en mode ébauche :SELECT DISTINCT "E"."Nometu", "N"."Numetu" FROM { OJ "ETUDIANT" AS "E"LEFT OUTER JOIN "NOTES" AS "N" ON "E"."Numetu" = "N"."Numetu" } J'ai toujours trouvé cette syntaxe plus complexe, moins intuitive, voire...vaguement repoussante dès lors qu'on a plusieurs jointures à écrire :)Il va sans dire que je n'utilise pas le mode ébauche dans ce cas (saufpour la sélection des tables& champs). Cordialement Pierre-YvesJe partage tes avis. Dans les requêtes de Bernard il y en avait au moins une qui fonctionnait à condition d'y placer les champs clé. Mais bon toutes ces accommodations, quand elles sont possibles, ne répondentpas aux attentes et sont de nature à repousser les utilisateurs lambda,alpha et oméga.Est-ce que vous vous sentez de rentrer les différentes bugs sur BugZilla avec les exemples ? À bientôt Sophie
--- Antivirus avast! : message Sortant sain. Base de donnees virale (VPS) : 101029-2, 29/10/2010 Analyse le : 30/10/2010 11:06:31 avast! - copyright (c) 1988-2010 AVAST Software. http://www.avast.com -- E-mail to discuss+help@fr.libreoffice.org for instructions on how to unsubscribe List archives are available at http://fr.libreoffice.org/lists/discuss/ All messages you send to this list will be publicly archived and cannot be deleted