2013-03-20 4 views
0

j'ai trois tables:instruction select m: n relation

UTILISATEUR
userid
FNAME
lname

GROUPE
groupId
Description

USER_GROUP
usergroupid
userid
groupId

i besoin d'obtenir le premier et le dernier nom de la table des utilisateurs. ce qui est donné est la description du groupe. Comment puis-je atteindre cet objectif?

Répondre

1
SELECT a.Fname, 
     a.LName, 
     c.Description 
FROM [USER] a 
     INNER JOIN [USER_GROUP] b 
      ON a.userID = b.userID 
     INNER JOIN [GROUP] c 
      ON b.groupid = c.groupID 
WHERE c.Description = 'description_here' 

Pour obtenir plus plus de connaissances sur les jointures, veuillez consulter le lien ci-dessous:

1

Essayez ceci:

SELECT USER.* 
FROM USER 
    INNER JOIN USER_GROUP ON USER.userid = USER_GROUP.userid 
    INNER JOIN [GROUP] ON USER_[GROUP].groupid = [GROUP].groupid 
WHERE [GROUP].description = 'Blah blah' 
1

Que diriez-vous

Select FName, LName 
    From user u 
    Where Exists 
     (Select * From user_Group ug 
      join group g On g.GroupId = ug.groupId 
     Where ug.userId = u.UserId 
      anf g.description = @GroupDescription) 
+0

ok je l'ai testé et cela semble fonctionner, maintenant mon seul problème est, peut-être que j'aurais dû aussi le mentionner, comment passer la variable @GroupDescription d'un autre gridview? J'utilise 2 gridviews, un pour afficher les groupes et un pour afficher les membres d'un groupe. le gridview pour l'affichage des groupes a deux colonnes: description et un bouton. Lorsque l'utilisateur clique sur le bouton dans ce champ, une nouvelle grille s'affiche avec les membres du groupe ... – LeonidasFett