Regroupement SQL résultats d'une Union

Hé les gars: j'ai une table dans ma base de données utilisée pour les utilisateurs à suivre eachother.

Le tableau se présente comme suit:
UniqueID
FollowerID
FollowedUserID

FollowID est le nom d'utilisateur de la personne qui est la suite de quelqu'un d'autre

FollowedUserID est le nom d'utilisateur de la personne qui est suivi par les FollowID Utilisateur

J'aimerais récupérer une liste de connexions à partir de ce tableau à partir d'un seul utilisateur. Ma requête doit retourner tous les autres Identifiants de l'utilisateur actuel est le suivre ou être suivi par sans chevauchements.

Alors disons que nous avons quelques entrées ici:

FollowerID   FollowedUserID
    1              2
    1              3
    4              1
    2              1

Cela montrerait que l'Utilisateur 1 est utilisateurs suivants 2 et 3, et ainsi, les utilisateurs 2 et 3 sont suivis par l'utilisateur 1. De l'autre côté du spectre, il montre que l'Utilisateur 1 est suivie par les utilisateurs 2 et 3.

Ce que je voudrais faire est de trouver les connexions de l'utilisateur 1 a, de sorte que la requête doit renvoyer les utilisateurs: 2, 3, et 4 (utilisateur 1 est utilisateurs suivants 2 et 3 et est suivi par l'utilisateur 4)

Comment puis-je obtenir ce à partir d'une seule requête?

Un connexion est considéré soit suivi ou à la suite de quelqu'un d'autre, il est possible que certaines en double peut produire des résultats (si les deux utilisateurs de la suite de l'autre). J'aimerais être capable de groupe de ces résultats, de sorte que le résultat est différent.

J'ai essayé une requête UNION similaires à:

SELECT FollowerID, FollowedUserID From Follows WHERE FollowerID = 1
UNION
SELECT FollowerID, FollowedUserID FROM Follows WHERE FollowedUserID = 1

Théoriquement j'aimerais Groupe FollowerID et FollowedUserID ensemble pour garder distincts.

Je ne suis pas intéressé par la récupération d'un non-distincte résultat et puis la création d'un jeu de données de résultats uniques php côté -- la requête doit retourner des valeurs distinctes.

Ce SGBD est-ce? Est-ce MS SQL Server?
Je ne comprends pas très bien quel est ton problème. Quel est le problème avec la requête UNION que vous avez posté? Et qu'entendez-vous par "Groupe FollowerID et FollowedUserID ensemble pour garder distincts"? Qui n'a pas de sens. Vous pourriez peut-être ajouter le résultat que vous souhaitez obtenir, puis peut-être que nous pouvons trouver une requête pour le produire.
Et BTW, SELECT ... UNION SELECT ... va automatiquement récupérer uniquement les valeurs distinctes. Si vous voulez les doublons, vous devez utiliser UNION ALL.
Je suppose que je misphrased ma question -- en doublons, je veux dire la symétrie de la liste, si une entrée est [2,1] et l'autre [1,2], je veux avoir un résultat (2) -- l'utilisateur 1 est la suite de l'utilisateur 2, utilisateur 2 est la suite de l'utilisateur 1. Une connexion est établie lorsque l'une ou l'autre arrive, donc tout ce qui m'intéresse est une instance unique de ces 2 résultats.

OriginalL'auteur Atticus | 2011-05-17