par
caroube » 02 déc. 2008, 19:52
Mais juste par curiosité, on est obligé d'utiliser les jointures même si c'est sur une même table ??
Non, pas du tout. Le mécanisme qui est utilisé ici est celui des alias. Quand tu as besoin d'utiliser 2 fois la même table dans une requête, tu mets un alias à l'une des deux (ou aux deux), afin que l'interpréteur SQL les considère comme deux tables différentes.
Tu peux également utiliser les alias pour avoir à éviter de recopier des noms trop longs dans une requête. Enfin tu peux utiliser les alias sur les noms de colonne lorsqu'il y a des ambiguités (cas fréquent quand justement on utilise deux fois la même table)
exemple : sélection d'un père, d'un fils et de leurs villes de naissance respectives
Code : Tout sélectionner
SELECT
P.NOM AS NOMPERE, P.PRENOM AS PRENOMPERE, V.NOM AS VILLEPERE,
F.NOM AS NOMFILS, F.PRENOM AS PRENOMFILS, W.NOM AS VILLEFILS
FROM PERSONNE AS P, PERSONNE AS F, COMMUNE AS V, COMMUNE AS W
WHERE P.ID = F.IDPERE
AND V.ID = P.IDCOMMUNE
AND W.ID = F.IDCOMMUNE
[quote]Mais juste par curiosité, on est obligé d'utiliser les jointures même si c'est sur une même table ??[/quote]
Non, pas du tout. Le mécanisme qui est utilisé ici est celui des alias. Quand tu as besoin d'utiliser 2 fois la même table dans une requête, tu mets un alias à l'une des deux (ou aux deux), afin que l'interpréteur SQL les considère comme deux tables différentes.
Tu peux également utiliser les alias pour avoir à éviter de recopier des noms trop longs dans une requête. Enfin tu peux utiliser les alias sur les noms de colonne lorsqu'il y a des ambiguités (cas fréquent quand justement on utilise deux fois la même table)
exemple : sélection d'un père, d'un fils et de leurs villes de naissance respectives
[code]
SELECT
P.NOM AS NOMPERE, P.PRENOM AS PRENOMPERE, V.NOM AS VILLEPERE,
F.NOM AS NOMFILS, F.PRENOM AS PRENOMFILS, W.NOM AS VILLEFILS
FROM PERSONNE AS P, PERSONNE AS F, COMMUNE AS V, COMMUNE AS W
WHERE P.ID = F.IDPERE
AND V.ID = P.IDCOMMUNE
AND W.ID = F.IDCOMMUNE
[/code]