Bonjour,
Je dispose d'un site avec plusieurs tables dont les suivantes :
users
contacts
groups
groups_users
- users contient des informations classiques sur les utilisateurs.
- contacts contient un champ id_user1 et un champ id_user2, indiquant qui est contact avec qui (il y a réciprocité)
- groups contient un champ group_name et un champ id_user qui sont le nom du groupe et l'id de l'utilisateur l'ayant créé
- groups_users contient un champ group_id correspondant à l'id d'un groupe, et id_user correspondant à l'id d'un user dans ce groupe
Je voudrais faire une requête permettant de récupérer un tableau comprenant tous les groupes d'un utilisateur, ainsi que les contacts qu'il a rajouté dans ses groupes, ainsi que les groupes vides et les contacts qui ne sont pas associés à des groupes.
Est-il possible de faire ceci en une seule requête ou moins ? Je voudrais faire une requête SQL rapide mais j'ai peur qu'on ne puisse pas faire cela efficacement en SQL... Auriez-vous une idée ? Les jointures externes sont un peu ce que je cherchais mais ne permettent pas de joindre autant de tables.
La seule solution que je vois est de sélectionner tous les groupes d'un utilisateur, pour chaque groupe de chercher les contacts dans ce groupe, puis de chercher tous les contacts qu'il n'aurait pas mis dans un groupe. Mais cela me semble extrêmement lourd...
Merci d'avance !
Partager