Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2292 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requête SELECT toute simple?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête SELECT toute simple?

n°1752661
spamoi
Posté le 28-06-2008 à 12:56:41  profilanswer
 

Bonjour,
 
je cherche le moyen de faire une requête qui me convertisse un id en login qui est stocké dans une autre table.
 
Schéma (simplifié):
 
t_employe:
----------
id, login
 
-> id en auto_increment, et login contient un varchar
 
t_flottant:
---------
id, id_login, donnees
 
-> id en auto_increment, id_login = l'id de la table t_employe qui correspond au login (int), et donnees qui contient pleins de choses :)
 
Ma requête:  

Code :
  1. SELECT id_login,donnees FROM t_flottant GROUP BY id_login;


 
 
Je voudrais faire en sorte que cette requête affiche le login au lieu de l'id... c'est surement tout simple mais là je ne vois pas  :heink:  
 
Actuellement ça me sort ça:

Code :
  1. +-------------------+
  2. |id_login | donnees   |
  3. +-------------------+
  4. |    3     |  dfsfsdf  | 
  5. |    4     |  fdfdfsd  |
  6. +-------------------+


 
Alors que je voudrais ça:
 

Code :
  1. +---------------------+
  2. |id_login   | donnees    |
  3. +---------------------+
  4. |    toto   |  dfsfsdf   | 
  5. |    tata   |  fdfdfsd   |
  6. +---------------------+


 
Merci de votre aide!  :hello:  
 

mood
Publicité
Posté le 28-06-2008 à 12:56:41  profilanswer
 

n°1752707
yellu
Posté le 28-06-2008 à 15:12:13  profilanswer
 

Il faut que tu fasses une jointure dans ta requête, car la ta SELECT n'as accès qu'aux données d'une table.

n°1752789
spamoi
Posté le 28-06-2008 à 18:59:26  profilanswer
 

Merci, tu peux me donner un ptit exemple pour commencer ? ;)

n°1752814
spamoi
Posté le 28-06-2008 à 20:02:30  profilanswer
 

j'ai trouvé:
 

Code :
  1. select login,id_login,...
  2. from t_flottant, t_employe
  3. where t_employe.id = t_flottant.id_login
  4. group by ......


 
 :hello:

n°1753969
Alisteroid
Posté le 01-07-2008 à 14:01:22  profilanswer
 

Pour info cette syntaxe est trompeuse lorsque tu fais une jointure, utilise bien les opérateurs de jointure, car la il est "caché" dans le where.
 
Un jour tu vas mettre une clause en plus dans ton where , genre " and nombre_message > 100" et pour une raison ou une autre tu vas vouloir enlever le filtrage dans ta requete et supprimer totalement ton where.
Le problème, tu perds ta clause de jointure et tu retrouve avec une requete sur 2 tables, et là tu vas avoir un bon plantage du serveur mysql car il devra analyser nb enregistrement table 1 * nb enregistrement table 2 , et ça peut vite monter dans des chiffres astronomiques.
 
Je te propose donc une syntaxe beaucoup plus claire et beaucoup moins risquée.
 

Code :
  1. select login,id_login,...
  2. from t_flottant INNER JOIN t_employe
  3. ON t_employe.id = t_flottant.id_login
  4. group by ......


 
Et la si tu veux filtrer, tu peux rajouter un "WHERE", et sa suppression ne sera pas "dangereuse"
 
Voila, c'était juste pour info  :hello:  

n°1754236
spamoi
Posté le 01-07-2008 à 20:34:01  profilanswer
 

Ok super merci pour l'info ;) je ne suis pas trop un pro des requêtes "compliquées" ...
 
Est-ce que tu connais un site ou c'est BIEN expliqué ?  
 
:hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requête SELECT toute simple?

 

Sujets relatifs
[Réglé] description et select attaché[ACCESS] Bouton Requete SQL INSERT INTO
Simple ViewerPetite aide en DOS vraiment tt simple
Pb requete SQLProblème avec XML::Simple
Générer un PDF à partir d'une requête SQL sous MyAdmin[SQL] une seule requête au lieu de deux...
[ORACLE] problème requête (pour les chauds du SQL)Problème avec .htaccess simple
Plus de sujets relatifs à : Requête SELECT toute simple?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR