[sql ]question de base : qu'est ce que fait une jointure ?

question de base : qu'est ce que fait une jointure ? [sql ] - Divers - Programmation

Marsh Posté le 08-05-2003 à 16:50:42    

ça met en commun tout les champs de 2 tables en une seule ou seulement les champs en commun ?
merci.

Reply

Marsh Posté le 08-05-2003 à 16:50:42   

Reply

Marsh Posté le 08-05-2003 à 16:59:58    

les champ commun

Reply

Marsh Posté le 08-05-2003 à 17:02:09    

airseb a écrit :

ça met en commun tout les champs de 2 tables en une seule ou seulement les champs en commun ?
merci.


 
une jointure permet d'établir une relation entre deux tables :
 
par exemple --> on établit qu'un forumeur à un boulay associé
 
j'ai une table forumeur avec comme champ :
- forumeur_identifiant
- forumeur_pseudo
- forumeur_mail
- forumeur_boulay_id  
 
et une table boulay dans laquelle se trouve les infos relatives au boulay :
 
- boulay_id
- boulay_pseudo
- boulay_themesdepredilection
- boulay_multis
 
 
dans cet exemple on peut connaitre le pseudo de chaque boulet associé au pseudo de chaque forumeur en faisant une jointure sur forumeur_boulay_id et boulay_id
SELECT  F.forumeur_pseudo, B.boulay_pseudo from forumeur F, boulay B WHERE F.forumeur_boulay_id=B.boulay_id;
 
[:tinostar]
 
 
-


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 08-05-2003 à 17:04:16    

Ca renvoie toutes les lignes possibles constituées d'une ligne de la 1ère table et d'une de la 2ème.
Donc, ca fait un volume d'informations qui augmenbte très rapidement : une jointure entre 2 tables de 100 enregistrements renvoie 10.000 lignes. 1 millions avec 3 tables de 100 enregisrements.
 
Mais toutes ces lignes ont rarement un intérêt. Généralement, on se contente de celles "qui vont bien ensembles", en définissant des conditions dans la partie "WHERE" de la requête.

Reply

Marsh Posté le 08-05-2003 à 17:05:05    

mouais, sauf que la, c'est une jointure de merde quand y a pas moyen de faire autrement.
 
En fait, il y a 3 types de jointures en SQL standard: INNER, LEFT et RIGHT.
 
INNER ne prend les enregistrements dans les deux tables QUE s'il existe une valeur commune dans les champs comparés
 
LEFT prend tous les champs de la première table et uniquement les champs de la deuxième s'il existe une valeur commune dans les champs comparés
 
RIGHT fait la même chose que left, mais à l'envers.

Reply

Marsh Posté le 08-05-2003 à 17:17:16    

gizmo a écrit :

mouais, sauf que la, c'est une jointure de merde quand y a pas moyen de faire autrement.


 
on dirait que j'ai trouvé mon maitre   :sol:  
 
(du reste, je suis bien d'accord avec toi sur les précisions que tu as apporté  ;) )


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 08-05-2003 à 17:29:59    

personne
--------
nom        num_voiture
roger           1
alfred          2
gutenger        3
 
 
voiture
--------
numero    couleur
1          vert
2          jaune
3          gris
 
une jointure va te servir a aller rechercher la couleur de la voiture d'une personne donnee
 
select personne.nom, voiture.couleur from personne, voiture where personne.num_voiture = voiture.numero
and personne.nom = 'roger';
 
resultat :
nom     couleur
------------------
roger    vert
 
 
 
c'est a ca que ca sert une jointure.
 
 
> simogeo : ton explication etait bonne mais pas tres explicite :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed