2011-03-23 3 views
1

J'ai cette requête: Il obtient la liste d'amis d'un utilisateur spécifiqueUn moyen de joindre ces deux requêtes sans sous-requête?

SELECT GROUP_CONCAT(friend_id) AS friends 
FROM friends_friends 
WHERE user_id = 503695576; 

Ce qui me donne une liste délimitée par des virgules que les utilisateurs particuliers amis.

Ensuite, en utilisant cette requête j'ai cette requête: Il obtient la liste des utilisateurs amis, amis

SELECT friend_id 
FROM friends_friends 
WHERE user_id IN(friends); 

Je ne suis pas trop d'expérience dans les jointures, etc, mais est-il de toute façon je peux faire rejoindre ou quelque chose de similaire pour faire de cette requête?

Répondre

2
SELECT GROUP_CONCAT(l2.friend_id) AS friends 
FROM friends_friends l1 
    JOIN friends_friends l2 
    ON l2.user_id = l1.friend_id 
WHERE l1.user_id = 503695576; 
+0

+1 Pour lire la question. – FreeAsInBeer

+0

C'était la solution pour moi. Merci! – ehftwelve