Bonjour,
Au bureau nous avons une question existentielle sur la definition de ce qu'est une jointure ouverte. Je pense que nous faisons une confusion avec le produit cartésien.
Pourriez vous nous donner les définitions de ces deux termes.
Merci.
Bonjour,
Au bureau nous avons une question existentielle sur la definition de ce qu'est une jointure ouverte. Je pense que nous faisons une confusion avec le produit cartésien.
Pourriez vous nous donner les définitions de ces deux termes.
Merci.
Jamais entendu parler !
Les jointures
pour ma part voici ce que je pense :
Tout type de jointure entre deux tables est un produit cartesien.
Une jointure ouverte correspond a ce qui suit :
Soit deux tables Client et Facture construites comme suit
Table Client (idfclient, nom, adresse)
Table Facture (idfclient, numero_facture)
La table A contient les données suivantes :
1 Toto Paris
2 Tata Lyon
la table B contient les données suivantes :
1 1024
1 1025
2 1026
2 1027
Select nom, numero_facture from Client, Facture
resultat :
Toto 1024
Toto 1025
Toto 1026
Toto 1027
Tata 1024
Tata 1025
Tata 1026
Tata 1027
On parle alors de jointure ouverte. C'est une requete dangereuse car comme on peut le voir si la table A contient n ligne et la table B m ligne le résultat d’une telle requête produira n*m lignes.
Si les tables sont volumineuses on peut etre a peu pres sur de mettre a genou le dataserver voir de faire exploser la log ou le tempdb.
Alors c vrai ou pas car on m'a mis un sacre doute ici au bureau
je ne crois pas,
Un jointure externe corresponderait plus au probleme suivant :
Soit deux tables Client et Facture construites comme suit
Table Client (idfclient, nom, adresse)
Table Facture (idfclient, numero_facture)
La table A contient les données suivantes :
1 Toto Paris
2 Tata Lyon
3 Tutu Annecis
la table B contient les données suivantes :
1 1024
1 1025
2 1026
2 1027
construire la requete telle que le resultat soit :
Toto 1024
Toto 1025
Tata 1026
Tata 1027
Tutu Null
A savoir faire une jointure externe sur Facture de maniere a obtenir toute les lignes de Client et si elles exsitent les informations les concernant dans la table facture.
enfin il me semble.
Je sais ce qu'est une jointure externe, je voulais dire est-ce que jointure ouverte ne serait pas un synonyme de jointure externe, comme une recherche sur yahoo peut le laisser penser :
http://www.parinux.org/pipermail/lin...st/022359.html :
si tu fais une jointure ouverte (LEFT OUTER JOIN).
Arf va falloir quelqu'un pour trancher sur ce sujet du coup !
Mr SQL-Pro pourait il eclaire nos lanterne et leve le voile ?
Merci
Ce que vous appelez jointure ouverte est une jointure naturelle.
j'ai lu trop vite. une jointure produisant un produit cartésien est appelée cross-join en anglais.
le terme "ouvert" pour une jointure m'est inconnu.
Une jointure ouverte est inconnu du monde de SQL !
Il devait s'agir d'une confusion sur les expressions.
Quel lanterne voulez-vous qu'on éclaire ?
J'ai déjà entendu parlé de la jointure manquante mais pas de la jointure ouverte.
Bon ben je vais dire que je vous crois si je comprends ce qi est dit on dit plutot une jointure croisee alors ?
Ce qui est louche c'est que je ne suis ps le seul a utiliser ce terme ... Aurait on ete infecte par un virus
Surement et Heureusement que le forum est un puissant antivirus de cette categorie.
Humm pourtant :
http://www.phpinfo.net/articles/article_optimisation-mysql.html
faire une recherche sur ouverte, faut croire qu'il y en a d'autre qui ont chope le virrus !
Je confirme mon impression : synonyme (non officiel) de jointure externe (mais pas de preuve)
Après survol de l'article, il parait clair qu'une jointure INNER doit être le contraire d'une jointure OUTER ( externe ).
N'ayant jamais entendu parler de jointure INNER, il n'est pas impossible que l'auteur se soit fourvoyé (OUTER ?)
En SQL Server
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM Table1 T1 JOIN Table2 T2 ON T1.ID = T2.ID
est la meme chose que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM Table1 T1 INNER JOIN Table2 T2 ON T1.ID = T2.ID
Effectivement JOINTURE OUVERTE est une mauvaise traduction de JOINTURE EXTERNE !
A +
Mais malheureusement ce n'est pas sur ce forum !Envoyé par P'tit Jean
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager