Construction d'une requête

Construction d'une requête - SQL/NoSQL - Programmation

Marsh Posté le 13-03-2009 à 19:01:30    

Bonjour,
 
J'ai du mal à construire une requête. Connaissant le nickname de l'utilisateur, je souhaiterai afficher le nom de son groupe d'affectation (attribut name de la table groups).
L'attribut id de la table groups est mis en relation avec l'attribut id_object de la table users_groups.
 
http://cjoint.com/data/dptbUjyOXy_ScreenShot018.jpg
 
J'ai pensé à cette requête :
 
select name from groups where id = (select id_group from users_groups where id_object = (select id_user from users where nickname = " toto" );
 
Mais n'y a t-il pas quelque chose de plus propre et plus simple que des sous-requêtes ?
 
Merci bien


Message édité par sneakz le 13-03-2009 à 19:30:35
Reply

Marsh Posté le 13-03-2009 à 19:01:30   

Reply

Marsh Posté le 14-03-2009 à 12:30:07    

si : des jointures

Code :
  1. SELECT u.nickname, g.name FROM groups g, users u, users_group ug
  2. WHERE u.id_user=ug.id_object AND g.id=ug.id_group;

Reply

Marsh Posté le 14-03-2009 à 12:45:53    

Merci bien couak. Je suis effectivement parti sur cette piste.
 
SELECT name FROM groups, users, user_groups WHERE groups.id = users_groups.id_groups AND users_groups.id_object = users.id_user AND nickname LIKE "toto";
 
Faut-il éviter d'utiliser des sous-requêtes ? est-ce maladroit en terme d'optimisation (temps d'exécution) ?

Reply

Marsh Posté le 16-03-2009 à 07:18:16    

en général oui, mais le plus important dans une contruction de requête, c'est de regarder le plan d'exécution

Reply

Sujets relatifs:

Leave a Replay

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