IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Liste d'amis identiques


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Liste d'amis identiques
    Bonjour.

    J'ai une table listant les utilisateurs d'un réseau social fictif, avec la liste de leurs amis. Chaque relation entre deux utilisateurs est répertoriée deux fois (dans les deux sens).
    Dans l'exemple ci dessous :
    0 est ami avec 1, 2 et 3
    1 est ami avec 0
    2 est ami avec 0 et 3
    3 est ami avec 0 et 2


    ID_utilisateur ----- Ami_de_l'utilisateur
    0-------------------1
    0-------------------2
    0-------------------3
    1-------------------0
    2-------------------0
    2-------------------3
    3-------------------0
    3-------------------2



    Il me faut construire une requête permettant d'obtenir la liste des utilisateurs ayant exactement les mêmes amis que l'utilisateur 2 (par exemple), ni plus ni moins. Ici je veux donc que ma requête me donne l'utilisateur 3.

    Je n'arrive pas a gérer le cas ou deux personnes sont amies entre elles, car dans ce cas, bien qu'elles aient les mêmes amis, leur liste diffère (2 est dans la liste de 3, mais 2 n'apparait pas dans sa propre liste)!


    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Il suffit de les rajouter dans votre requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    union all
    select id_utilisateur, id_utilisateur
      from matable

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Je ne comprends pas ton union all là !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Si on prend le cas des utilisateurs 2 et 3, leur liste d'amis sont différentes {0,2} <> {0,3} :
    2-------------------0
    2-------------------3
    3-------------------0
    3-------------------2
    Maintenant si on les rajoute eux-même dans la liste (dynamiquement avec le union all pour le besoin de cette requête) :
    2-------------------0
    2-------------------2
    2-------------------3
    3-------------------0
    3-------------------2
    3-------------------3
    La liste d'amis devient maintenant égale avec {0,2,3}.

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Je parle de ta requête qui n'est pas correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    union ALL
    SELECT id_utilisateur, id_utilisateur
      FROM matable
    Tu fais un union all avec quoi ?

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Je parlais bien d'un rajout au jeu de données initial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select id_utilisateur, id_ami
      from matable
     union all
    SELECT id_utilisateur, id_utilisateur
      FROM matable

Discussions similaires

  1. Accéder à ma liste d'amis
    Par koKoTis dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 13/11/2007, 11h31
  2. Réponses: 3
    Dernier message: 22/05/2007, 09h50
  3. [Conception] Une liste d'amis
    Par Attilius dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 01/08/2006, 10h12
  4. [Bug] Liste d'amis
    Par hamster dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 16/05/2006, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo