Jointure.. Je suppose

Jointure.. Je suppose - SQL/NoSQL - Programmation

Marsh Posté le 26-01-2006 à 11:44:13    

Bonjour à tous..
Je cherche à faire une requête qui doit être assez simple  
j'ai deux tables:
 
la table Communication
 
ID  |  id_from  | id_to  | message
--------------------------------
 1  |    1        |  2      | bonjour
 2  |    2        |  1      | tiens salut ca va ?
 
et la table contacts
 
ID  |  nom    
-------------
 1  |  thomas      
 2  |  charlotte      
 
et mon objectif serait d'avoir:
 
ID  |  From     | to        | message
--------------------------------
 1  |  thomas  |charlotte| bonjour
 2  | charlotte |thomas   | tiens salut ca va ?
 
J'arrive pas à trouver le truc...  
 
Merci pour votre aide...
Palouf
 

Reply

Marsh Posté le 26-01-2006 à 11:44:13   

Reply

Marsh Posté le 26-01-2006 à 13:50:27    

Il faut faire une double jointure avec des alias de table
Sous SqlServer :
SELECT ContactFrom.nom, ContactTo.Nom, Communication.Message FROM Communication
INNER JOIN Contact AS ContactFrom ON ContactFrom.ID = Communication.ID_From
INNER JOIN Contact AS ContactTo ON ContactTo.ID = Communication.ID_To

Reply

Marsh Posté le 26-01-2006 à 14:54:34    

KOOOL  
Merci beaucoup ca marche niquel...
 
Grâce te soit rendue WhyMe

Reply

Marsh Posté le 26-01-2006 à 16:51:38    

Cà fait plaisir à lire !!! :jap:


Message édité par WhyMe le 26-01-2006 à 16:52:08
Reply

Marsh Posté le 26-01-2006 à 17:42:05    

Je me suis toujours posé une question :  
 
Quels sont les avantages/inconvénients à utiliser INNER JOIN plutôt que WHERE ?
 
Merci :)

Reply

Marsh Posté le 26-01-2006 à 17:50:32    

tu veux dire de mettre la condition de jointure dans le ON plutot que le WHERE?
 
Personnellement je mets dans le ON car j'isole les conditions liées aux jointures d'un coté, et les conditions de selection de l'autre
 
Maintenant, je ne suis pas sur que ca ait un impact sur les perfs. Avis aux specialistes.


---------------
MZP est de retour
Reply

Marsh Posté le 26-01-2006 à 18:04:52    

C'est une question de Norme.
La jointure avec join ... on c'est de l'ANSI SQL92
Et pis c'est plus beau ;-)
 

Reply

Marsh Posté le 26-01-2006 à 18:09:29    

Ok merci :)

Reply

Marsh Posté le 26-01-2006 à 19:44:31    

m3z a écrit :

C'est une question de Norme.
La jointure avec join ... on c'est de l'ANSI SQL92
Et pis c'est plus beau ;-)


perso, je trouve ça imbittable, c'est une histoire de goûts :D
 
mais sinon, en effet, ça n'a pas d'impact sur les perfs (ou c'est tellement rare que c'est négligeable)
 
attention toutefois : pour les jointures externes, on ne peux pas toujours faire ce qu'on veut avec les clases where et il faut utiliser le outer join. il vaut donc mieu connaitre les deux syntaxes.


Message édité par Arjuna le 26-01-2006 à 19:45:41
Reply

Sujets relatifs:

Leave a Replay

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