bonjour,
j'ai 3 tables mysql user, consultation et relation (voir les images ci-dessous).
consultation :
Pièce jointe 351868
relation :
Pièce jointe 351872
user :
Pièce jointe 351991
la table relation contient des invitations qui ont été émis (invitation de demande d'ajout dans la liste d'amis, invitation de rejoindre un group...).
quand un user X invite un user Y,j'insère le id_emeteur de X ET le id_destinataire de Y dans la table relation.
maintenant quand je sélectionne, le problème est là, par ce que il peut y avoir une invitation avec un id_emeteur qui est différent du mien et qu'elle m’intéresse(l'invitation est envoyée a moi).
bref la requête que j'ai fait est la suivante :
est-ce qu'il y a un autre moyen plus optimiser et plus propre que ça, pour arriver au même résultat sans passer par EXISTS dans la requête mysql?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT id_user,nom,count(*) as totale,nbr_vu_action FROM `consultation` consult inner join users us on (consult.type_info!='amitie' and consult.owner_info!=us.id_user) or (consult.type_info='amitie' and EXISTS(select id_emet from relation where relation.id_relation=consult.id_info and (relation.id_emet=us.id_user or relation.id_dest=us.id_user))) left join relation r on consult.type_info='amitie' and consult.id_info=r.id_relation and (r.id_emet=consult.owner_info or r.id_dest=consult.owner_info) group by us.nom
Partager