SELECT au dessus de mes capacités (pour le moment)

SELECT au dessus de mes capacités (pour le moment) - SQL/NoSQL - Programmation

Marsh Posté le 19-08-2007 à 23:35:50    

Lu a tous !

J'essaye en 1 seul requete de recuperer les pseudos des joueurs (sur la table joueur) mais mes capacités ne me permet que de recuperer l'id du joueur:
 
Ma requete :
 
SELECT quoi, combien, de, qt, a
FROM contrat
WHERE `de` =1
OR `a` =1
ORDER BY a DESC , de, quoi
 
J'obtient ca:  
 

quoi   combien de   qt    a
eau    500     1    1000  2
elec   123     2    987   1
elec   100     2    500   1
elec   436     1    798   NULL
elec   30      1    10    NULL


 
'de' et 'a' sont des id de joueur , j'aimerais recuperer un resultat comme celui ci :

quoi   combien   de     qt     a
eau    500     seb      1000   joueurx
elec   123     joueurx  987    seb
elec   100     joueurx  500    seb
elec   436     seb      798    NULL
elec   30      seb      10     NULL


 
Bref si vous voulez bien m'indiquer la marche a suivre pour avoir un resultat correct ca serait sympa :)


Message édité par GordonF_69 le 19-08-2007 à 23:49:01
Reply

Marsh Posté le 19-08-2007 à 23:35:50   

Reply

Marsh Posté le 20-08-2007 à 00:07:06    

Bon je l'ai fait en 3 requete, c'est pas super clean mais si qqn a qq chose de mieux a proposer, pk pas ;)

Reply

Marsh Posté le 20-08-2007 à 00:10:42    

jointures.

 

Edit: bienvenue dans ce merveilleux monde d'ailleurs.


Message édité par Gf4x3443 le 20-08-2007 à 00:11:19
Reply

Marsh Posté le 20-08-2007 à 10:58:03    

Pour faire plus clair :
 
SELECT quoi, combien, joueurs.nom_joueur, qt, a  
FROM contrat , joueurs
WHERE (`de` =1  
OR `a` =1 )
 
AND contrat.id_joueurs = joueurs.id_joueurs
 
ORDER BY a DESC , joueurs.nom_joueur, quoi  
 
La jointure en gras te permet de lier tes tables contrat / joueurs en associant l'id_joueurs de ta table contrat à un id_joueur de la table joueur. Ensuite tu n'as plus qu'à selectionner le champ qui contient le nom dans ta table joueur et la coller dans le select.


Message édité par Noren2 le 20-08-2007 à 10:58:20
Reply

Marsh Posté le 20-08-2007 à 15:24:15    

ça c'est des noms de champs [:magicbuzz]
 

Code :
  1. SELECT c.quoi, c.combien, exp.nom_joueur de, c.qt, des.nom_joueur a
  2. FROM contrat c
  3. INNER JOIN joueurs exp ON exp.id = c.de
  4. LEFT OUTER JOIN joueurs des ON des.id = c.a
  5. WHERE c.de = 1
  6. OR c.a = 1

Reply

Sujets relatifs:

Leave a Replay

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