Requête SQL jointure deux champs vers un même champ

Requête SQL jointure deux champs vers un même champ - SQL/NoSQL - Programmation

Marsh Posté le 22-12-2014 à 16:28:03    

Bonjour,  
 
j'ai une table Prenoms:
ID prenom
1 robert
2 alice
3 jean
4 vincent
5 juliette
 
Et j'ai une table rencontre avec:  
ID premier second
1  5            2
2  5            3
 
 
J'aimerai afficher un truc du genre:  
Rencontres programmées:  
juliette - alice
juliette - jean  
 
(dans mon exemple).
 
Seulement voila j'arrive à faire un INNER JOIN avec mon champ "premier" et le champ "prenoms" mais après je n'arrive pas à faire une jointure entre "second" et ce même champ "prénom".
 
Comment faire ?
 
Merci

Reply

Marsh Posté le 22-12-2014 à 16:28:03   

Reply

Marsh Posté le 22-12-2014 à 16:40:32    

Utilise des alias :

 
Code :
  1. SELECT p1.prenom, p2.prenom
  2. FROM rencontre r
  3. INNER JOIN prenoms p1 ON r.premier = p1.id
  4. INNER JOIN prenoms p2 ON r.second = p2.id
 

quelque chose comme ça ça devrait fonctionner.


Message édité par kao98 le 22-12-2014 à 16:40:56

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-12-2014 à 16:45:51    

Je viens d'essayer et cela ne marche pas, dans mon affichage j'ai juste le premier prénom et pas le second. En gros j'ai - pour continuer avec mon ex - :
juliette - 2
juliette - 3
 
:??:

Reply

Marsh Posté le 22-12-2014 à 16:51:52    

C'est quoi ta requête ?
Parce que là, le résultat que tu obtiens est complètement incohérent avec la requête que j'ai posté. Tu l'as modifiée ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-12-2014 à 17:06:02    

Voici ma requête :

 
Code :
  1. $reponse = $bdd->query ('
  2.   SELECT r.journee, r.date, r.premier, r.second, p1.prenom, p2.prenom
  3.   FROM rencontres r
  4.   INNER JOIN prenoms p1 ON r.premier = p1.id
  5.   INNER JOIN prenoms p2 ON r.second = p2.id
  6.   ORDER BY r.journee ASC');
 

EDIT
Je poste mon code pour l'affichage parce qu'au final c'est sans doute de là d'ou vient le souci et non du code que tu m'as donné.
En fait je ne sait pas quoi mettre parce que lorsque je mets:

Code :
  1. echo '<td> '.$donnees['prenom'].' - '.$donnees['prenom'].'</td> ' ;


cela me donne deux fois le même prenom et c'est pas ce que je veux

 

alors quoi faire ?

 


Message édité par zazounn le 22-12-2014 à 17:09:49
Reply

Marsh Posté le 22-12-2014 à 17:10:15    

La requête semble correcte.
Tu n'aurais pas un problème avec ton code PHP ? D'ailleurs, tu dis bien 3 posts plus haut que c'est ton affichage qui n'est pas bon. Si tu exécutes la requête directement sur le serveur SQL, ça donne quoi ?
C'est quoi comme serveur d'ailleurs ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-12-2014 à 17:12:13    

Ha, ok, c'est plus clair.
Oui, c'est ton affichage qui n'est pas correct.
 
Une solution simple :
 

Code :
  1. $reponse = $bdd->query ('
  2.     SELECT r.journee as journee, r.date as date, r.premier as id_premier, r.second as id_second, p1.prenom as prenom1,    p2.prenom as prenom2
  3.     FROM rencontres r
  4.     INNER JOIN prenoms p1 ON r.premier = p1.id
  5.     INNER JOIN prenoms p2 ON r.second = p2.id
  6.     ORDER BY r.journee ASC');
  7.  
  8. // (...)
  9.  
  10. echo '<td> '.$donnees['prenom1'].' - '.$donnees['prenom2'].'</td> ' ;


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 22-12-2014 à 17:15:18    

:bounce:  
 
Merciiii ! C'était tellement bête !

Reply

Sujets relatifs:

Leave a Replay

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