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 Gatto
Voici 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<[email protected]>:
Bonjour,
Le 26/10/2010 16:07, pierre-yves.samyn a écrit :
Bonjour
Message 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 de
jointures. 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"
pour
que
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
(sauf
pour la sélection
des tables& champs).
Cordialement
Pierre-Yves
Je 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épondent
pas 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 [email protected] 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