Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1405 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Données communes à 2 requêtes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Données communes à 2 requêtes

n°1762537
polo7
Posté le 21-07-2008 à 14:06:55  profilanswer
 

Hello,
Je génère une liste d'amis, mais j'aimerais connaître la liste des amis communs pour chacuns de ces amis.
J'ai un table user, group et user_group comme associative.
J'arrive à obtenir pour chaque amis, la liste de ses amis dans ma requête, mais pas des amis commun.
Comment procéder ?

mood
Publicité
Posté le 21-07-2008 à 14:06:55  profilanswer
 

n°1762568
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 21-07-2008 à 15:00:36  profilanswer
 

avec le detail des tables ca serai mieux,

n°1762595
polo7
Posté le 21-07-2008 à 15:46:47  profilanswer
 

user:
- id_user (primary key)
- prenom
- nom ...
 
group:
- id_group (primary key)
- id_user (propriétaire du groupe)
- nom_group
 
user_group:
- id_user_group (primary key)
- id_group
- id_user
 
Voilà.
-

n°1762674
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 21-07-2008 à 17:07:49  profilanswer
 

je comprend pas l'utilité de ta cle id_user_group
sachant que la entre user et group tu as une relation n:m, tu as juste besoin de id_group et id_user dans ta table user_group (tu auras jamais 2 fois la meme conbinaison vu un utilisateur va pas etre 2 fois inscrit au meme groupe)  , aprés pour ta requete , tu cherche les amis en commun par rapport à quoi , à une liste définit , les amis en commun de qui, c'est un peu flou la

n°1762704
polo7
Posté le 21-07-2008 à 17:38:20  profilanswer
 

oui, c'est vrai que ce champ n'est pas très utile, sauf pour une référence lors de suppression, ça ne change rien au performances.
paul à 3 amis: jean, pierre et jacques (leur id_user est dans user_group et l'id_group est celui du groupe les amis de paul).
pierre à 4 amis: paul, jean, antoine, et alex.
paul et pierre ont jean comme amis commun.
Voilà, c'est un peu plus claire ?
 
Merci pour l'aide.

n°1762714
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 21-07-2008 à 17:56:38  profilanswer
 

ok donc tu passerai en parametre deux prenoms et la requete te renverrai le ou les amis en communs
c'est ca?

n°1762725
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 21-07-2008 à 18:08:13  profilanswer
 

si tu te souviens comment on fait l'inverse de "union" en SQl, c'est tout simple
mais je le m'en souvient plus  

n°1762959
MagicBuzz
Posté le 22-07-2008 à 11:18:46  profilanswer
 

infoman64 a écrit :

si tu te souviens comment on fait l'inverse de "union" en SQl, c'est tout simple
mais je le m'en souvient plus  


INTERSECTION
 
Mais :
1/ c'est pas toujours supporté
2/ Un bête INNER JOIN entre les deux résultats retourne la même chose en plus rapide

n°1763163
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 22-07-2008 à 13:54:21  profilanswer
 

ah ok je savais pas que c'etait pas toujours supporté
c'est bon a savoir

n°1763370
polo7
Posté le 22-07-2008 à 20:07:29  profilanswer
 

Merci pour la code et les fonctions, je vais essayer, mais j'aimerais tout de même comprendre ce que je fait.
J'ai utilisé le INNER JOIN pour la 1ère x et ça fonctionne, j'obtiens la liste d'amis de mes amis, mais pas encore les communs.
Voici le code:

Code :
  1. SELECT * FROM $table_user
  2.    INNER JOIN $table_user_group
  3.     ON $table_user_group.id_user=$table_user.id_user
  4.      INNER JOIN $table_group
  5.       ON $table_group.id_user=$friends_id AND $table_group.id_group=$table_user_group.id_group

mood
Publicité
Posté le 22-07-2008 à 20:07:29  profilanswer
 

n°1763372
polo7
Posté le 22-07-2008 à 20:10:58  profilanswer
 

au fait, j'ai oublié, si je remplace le $friends_id par $id_user, alors j'obtiens la liste de mes amis.
en prenant les id_user communs de cette requête avec la même bis ($id_user à la place de $friends_id), j'obtiens ce qu'il me faut.

n°1771471
polo7
Posté le 09-08-2008 à 10:47:53  profilanswer
 

mais je n'ai toujours pas trouvé la solution pour obtenir les enregistrements communs à ces 2 requêtes.

n°1785855
polo7
Posté le 11-09-2008 à 23:19:41  profilanswer
 

je n'ai pas encore trouvé avec la BDD, mais il faudra faire les 2 requêtes et tester dans un boucle.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Données communes à 2 requêtes

 

Sujets relatifs
Ajouter des données à une variable tableau[PHP/SQL] Mettre à jour des données dans un tableau array
quel programme pour traiter des données dans excel?[postgresql] chemin de la base de données
quelle base de données ?Formulaire HTML et transmission de données
[PHP] envoyer des données directement via adresse MAC ?[Résolu] Connexion sécurisée à une base de données MySQL
[VBA] Déplacer données TableProblème de requêtes SQL
Plus de sujets relatifs à : Données communes à 2 requêtes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR