[WD14-15] help requête compliquée ??

Le
toto
Bonjour,

j'essaie de créer un requête mais je m'en sort pas .

Voici le problème :

1) Table des chefs de projets : TCP

id_cp (identifiant unique d'un chef de projet)
nom
prenom

2) table des projets TP :

id_p (identifiant unique du projet)
nom_projet (nom du projet :))
id_cp1 (identifiant du "chef de projet" du projet) lié à TCP
id_cp2 (identifiant de l'adjoint du chef de projet) lié à TCP

3) la requête :

la requête simple : select nom_projet,id_cp1,id_cp2 from projets
exemple de résultat : PRJ_web 45 56 (qui est 45 ou 56 ?)

bof !

je préfèrerai : PRJ_web Dupont Durant

ben là je cale pour créer la requête
sachant qu'un projet peut n'avoir aucun responsable et/ou adjoint

là où ça coince c'est au niveau des id_cp

une idée ?

merci

Vincent


ps : je sais que dans une table je peux afficher tout ça facilement,
mais c'est lié à mon dernier post, et je désire utiliser cette requête
en dehors d'une table fichier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
TT
Le #21599851
Le Tue, 20 Apr 2010 17:17:50 +0300, toto
Bonjour,

j'essaie de créer un requête mais je m'en sort pas .

Voici le problème :

1) Table des chefs de projets : TCP

id_cp (identifiant unique d'un chef de projet)
nom
prenom

2) table des projets TP :

id_p (identifiant unique du projet)
nom_projet (nom du projet :))
id_cp1 (identifiant du "chef de projet" du projet) lié à TCP
id_cp2 (identifiant de l'adjoint du chef de projet) lié à TC P

3) la requête :

la requête simple : select nom_projet,id_cp1,id_cp2 from projets
exemple de résultat : PRJ_web 45 56 (qui est 45 ou 56 ?)

bof !

je préfèrerai : PRJ_web Dupont Durant

ben là je cale pour créer la requête
sachant qu'un projet peut n'avoir aucun responsable et/ou adjoint

là où ça coince c'est au niveau des id_cp



Une jointure externe avec TP ?

Voir par exemple: http://sql.1keydata.com/fr/sql-jointure-externe.php

--
TT
Vincent
Le #21606211
TT a écrit :
Le Tue, 20 Apr 2010 17:17:50 +0300, toto
Bonjour,

j'essaie de créer un requête mais je m'en sort pas .

Voici le problème :

1) Table des chefs de projets : TCP

id_cp (identifiant unique d'un chef de projet)
nom
prenom

2) table des projets TP :

id_p (identifiant unique du projet)
nom_projet (nom du projet :))
id_cp1 (identifiant du "chef de projet" du projet) lié à TCP
id_cp2 (identifiant de l'adjoint du chef de projet) lié à TCP

3) la requête :

la requête simple : select nom_projet,id_cp1,id_cp2 from projets
exemple de résultat : PRJ_web 45 56 (qui est 45 ou 56 ?)

bof !

je préfèrerai : PRJ_web Dupont Durant

ben là je cale pour créer la requête
sachant qu'un projet peut n'avoir aucun responsable et/ou adjoint

là où ça coince c'est au niveau des id_cp



Une jointure externe avec TP ?

Voir par exemple: http://sql.1keydata.com/fr/sql-jointure-externe.php



merci pour ton lien,

la difficulté à mon niveau est de faire une jointure externe sur deux
éléments qui pointent sur la même table, j'arrive bien à à faire 1
jointure avec id_cp1, mais avec id_cp1 et id_cp2 .... non

Vincent
Firetox
Le #21607281
Bonjour,

si vous voulez faire plusieurs jointures sur la meme table il suffit de
faire des alias

SELECT TP.nom_projet,
TCPP.Nom, TCPP.prenom,
TCPA.Nom, TCPA.prenom,
FROM
TP
LEFT JOIN TCP as TCPP ON TP.ID_CP1 = TCPP.ID_CP
LEFT JOIN TCP as TCPA ON TP.ID_CP2 = TCPA.ID_CP

avec
TCPP alias sur TCP pour le chef de projet
TCPA alias sur le TCP pour le chef de projet adjoin

Bon dev
@+
toto
Le #21617321
Le 22/04/2010 11:22, Firetox a écrit :
Bonjour,

si vous voulez faire plusieurs jointures sur la meme table il suffit de
faire des alias

SELECT TP.nom_projet,
TCPP.Nom, TCPP.prenom,
TCPA.Nom, TCPA.prenom,
FROM
TP
LEFT JOIN TCP as TCPP ON TP.ID_CP1 = TCPP.ID_CP
LEFT JOIN TCP as TCPA ON TP.ID_CP2 = TCPA.ID_CP

avec
TCPP alias sur TCP pour le chef de projet
TCPA alias sur le TCP pour le chef de projet adjoin

Bon dev
@+



Merci beaucoup, c'est exactement ce que j'essayais de faire.

Merci x 1000

Vincent
Publicité
Poster une réponse
Anonyme