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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu] Du mal avec une requête sur tables à relation réfléchie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Du mal avec une requête sur tables à relation réfléchie

n°1723088
ZeBix
edit > preview
Posté le 23-04-2008 à 18:09:04  profilanswer
 

Bonjour à tous,  
j'ai un peu du mal à me faire ma petite requête SQL
 
J'ai deux tables :  
 
Table USERS :  
Fields : id, displayname, isgroup
 
Table USERS2USERS :  
Fields : id, ingroup
 
La relation est réfléchie entre les deux, USERS2USERS est une table croisée entre deux instances de USERS. En gros, un groupe n'est rien d'autre qu'un utilisateur comme un autre, et la table croisée reprend , dans le champ "ingroup", un id de la table users pour déterminer que l'user repris dans le champ id (de users2users, donc) fait partie du groupe.
(et, dans la table USERS, le champ "isgroup" sert à déterminer qui est un groupe ou pas, histoire qu'un utilisateur ne soit pas "membre" d'un autre utilisateur non groupe :) )
 
Exemple :  user "toto" fait partie du groupe "admin" et user "linus" fait partie des groupes "admin" et "editors"
On a donc :  
 
USERS : (id, displayname, isgroup)
1, admin, 1
2, editors, 1
3, Toto, 0
4, Linus, 0
 
USERS2USERS : (id, ingroup)
3, 1
4, 1
4, 2
 
Un utilisateur peut bien sûr ne faire partie d'aucun groupe.
 
Voilà je voudrais, pour un utilisateur donné, lister d'abord lui même et ensuite tous les groupes auxquels il appartient éventuellement. Cette requête doit se présenter en une seule colonne, mais en autant de "rows" que nécessaire.
 
Exemple ici, pour l'utilisateur "Linus" :  
4
1
2
 
 
J'ai essayé avec un left outer join entre les deux tables, je pense que c'est le début (puisque un utilisateur peut n'avoir aucun groupe), mais je n'arrive jamais, en spécifiant un where id = 'x', à obtenir plusieurs rows, ce qui est normal ...
 
Je n'ai rien contre les requêtes imbriquées et autres subtilité, tout ce que je voudrais c'est une requête qui me donne ce résultat d'un coup d'un seul...  
Une petite piste ?  :hello:


Message édité par ZeBix le 24-04-2008 à 09:21:50
mood
Publicité
Posté le 23-04-2008 à 18:09:04  profilanswer
 

n°1723096
ZeBix
edit > preview
Posté le 23-04-2008 à 18:19:11  profilanswer
 

Rha le Union, il m'a complètement échappé celui là ...  
 
Tant de blabla pour un truc qui me paraissait aussi difficile à expliquer alors que c'est d'une simplicité enfantine ...  
 
Cependant il reste un problème : le UNION n'aime pas, pour le deuxième select, le custom name donné dans le premier ... Ceci dit je peux me débrouiller là avec des variables en php, pas de soucis ..
 
Merci beaucoup NazzTazz !

n°1723297
ZeBix
edit > preview
Posté le 24-04-2008 à 09:21:31  profilanswer
 

Voilà, c'est parfait comme ça :)
 
merci encore !


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

  [Résolu] Du mal avec une requête sur tables à relation réfléchie

 

Sujets relatifs
[RESOLU] "applet not initiated" : quelle erreur dans le code HTML ?[RESOLU] probleme file.exists()
[résolu]Optimiser la prévisualisation en php+javascript[Resolu]comment crée un fichier.jar?
[Résolu] Insertion image dans formulaire Access[MSDE2K] backup tables
Trop de relations entre les tables :/Transfert de variable [résolu]
[Résolu] Menu déroulant animé : setTimeout()[Résolu] Conseil rapide pour formulaire
Plus de sujets relatifs à : [Résolu] Du mal avec une requête sur tables à relation réfléchie


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