2010-01-15 7 views
1

Je dois aller à deux tables pour obtenir les informations appropriéesQuel type de jointure SQL serait-ce?

exp_member_groups 
-group_id 
-group_title 

exp_members 
-member_id 
-group_id 

Je le member_id approprié

Je dois vérifier la table des membres, obtenir le group_id, puis aller à la table des groupes et faire correspondre le group_id et obtenir le group_title de cela.

Répondre

4

INNER JOIN:

SELECT exp_member_groups.group_title 
FROM exp_members 
INNER JOIN exp_member_groups ON exp_members.group_id = exp_member_groups.group_id 
WHERE exp_members.member_id = @memberId 
2
SELECT g.group_title 
FROM exp_members m 
    JOIN exp_member_groups g ON m.group_id = g.group_id 
WHERE m.member_id = @YourMemberId 
1

S'il y a toujours un groupe de correspondance, ou si vous voulez que les lignes où il est, il serait alors un INNER JOIN:

SELECT g.group_title 
FROM exp_members m 
     INNER JOIN 
       exp_member_groups g 
       ON m.group_id = g.group_id 
WHERE m.member_id = @member_id 

Si vous veulent des lignes même si group_id ne correspond pas, alors il s'agit d'un LEFT JOIN - remplacez INNER JOIN par LEFT JOIN ci-dessus.