Page 1 sur 1

join sur noms champs

Posté : 07 févr. 2008, 14:38
par Invité
Bonjour à tous,

d'habitude une jointure (join on) se fait sur des champs en utilisant des correspondances de valeurs pour ces champs.

Est il possible de faire des jointures sur des champs en utilisant les noms de chams comme correspondance?

En gros, peut on faire:
JOIN....ON champ1.nomChamp = champ2.nomChamp

au lieu de (méthode classique):
JOIN....ON champ1.valeur = champ2.valeur

Merci pour vos réponses.

Posté : 10 févr. 2008, 15:56
par sadeq
Permet moi de te corriger : Il n'y a qu'une méthode pour Join et ça s'écrit comme suit :
Table1 JOIN Table2 ON Table1.champ = Table2.champ

Le Join sert à établir une relation entre 2 tables et cette relation se traduit par l'égalité des valeurs de 2 champs qui chacun existe dans chacune des tables liées.

Exemple:

Table1: table des clients

Code : Tout sélectionner

id nom -------------- 1 Dupont 2 Durand 3 Toto
Table2: table des commandes des clients

Code : Tout sélectionner

numero date id_client -------------------------------------- 1 01/01/2008 1 2 01/01/2008 2 3 10/01/2008 2 4 10/01/2008 1
La relation entre Table1 et Table2 est l'égalité des champs : Table1.id et Table2.id_client
Cette relation permet d'associer à chaque client ses commandes.
Ainsi, le client Dupont ayant l'id 1 a 2 commandes la n°1 et la n°4.

En SQL, pour sélectionner les commandes du client nommé 'Dupont' on exploite la relation (jointure) entre les tables en écrivant :

Code : Tout sélectionner

SELECT Table1.id, Table1.nom, Table2.numero, Table2.date FROM Table1 JOIN Table2 ON Table1.id = Table2.id_client WHERE Table1.nom = 'Dupont';
Le résultat est la liste suivante:

Code : Tout sélectionner

id nom numero date -------------------------------------- 1 Dupont 1 01/01/2008 1 Dupont 4 10/01/2008
Alors, maintenant, quelle est ta question au juste?