Bonjour à tous c'est encore moi ,

Une question me taraude comme dirait Jamel .

En listant les membres d'un site ( en rapport avec les requêtes du dessus ), si étant connecté ( session) je voudrais faire apparaître devant chaque membre si nous avons des amis en commun le "nombre d'amis en commun" .

Cette requête qui marche ( grâce à vous d'ailleurs ) me fait lister seulement les membres avec lesquels je ne suis pas ami et avec qui j'ai au moins 1 ami en commun ( affichage aussi le nombre d'ami en commun (nb_common_friends)) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
SELECT F1.user_id, F2.posterfriend_id, COUNT( DISTINCT F2.user_id ) AS nb_common_friends, u.user_id, u.prenom,u.nom
FROM (
	SELECT user_id, posterfriend_id
	FROM users_friends
	WHERE confirm_friend =1
	UNION ALL 
	SELECT posterfriend_id, user_id
	FROM users_friends
	WHERE confirm_friend =1
	)F1
	INNER JOIN (
 
	SELECT user_id, posterfriend_id
	FROM users_friends
	WHERE confirm_friend =1
	UNION ALL 
	SELECT posterfriend_id, user_id
	FROM users_friends
	WHERE confirm_friend =1
	)F2 ON F1.posterfriend_id = F2.user_id, users u
WHERE F1.user_id =$l_login_id
AND F2.posterfriend_id <> F1.user_id
AND F2.posterfriend_id = u.user_id
AND F2.posterfriend_id NOT IN
(SELECT u.user_id
FROM users_friends uc, users u
WHERE u.user_id <> " . ANONYMOUS . " 
AND (uc.user_id = $l_login_id OR uc.posterfriendposterfriend_id = $l_login_id) AND (u.user_id = uc.posterfriend_id OR u.user_id = uc.user_id) AND u.user_id != $l_login_id AND uc.confirm_friend = 1
)
 GROUP BY F1.user_id, F2.posterfriend_id
HAVING nb_common_friends >=1
ORDER BY u.user_id DESC
Mon souhait est d'afficher les membres du site sans restriction de recherche ( order by u.user_id ) et de mettre devant chaque membre (si j'ai un ami en commun ) le nombre d'ami commun . même si je suis déjà ami avec ce membre . j'espère que j'étais assez clair . est ce possible de la faire en une seule requête !!


Pour l'instant la requete simple pour lister les membres est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT user_prenom, user_id, user_nom 
	FROM users
	ORDER BY $order_by
Merci d'avance de votre aide .