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)) :
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 !!
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
Pour l'instant la requete simple pour lister les membres est :
Merci d'avance de votre aide .
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
Partager