Comment obtenir les mêmes résultats sans utiliser distincts dans la requête

J'ai une table avec des données comme suit:

[ID, Name]
1, Bob
1, Joe
1, Joe
1, Bob

Je veux récupérer une liste d'enregistrements montrant la relation entre les enregistrements avec le même ID.
Par exemple, je veux la suite de ma requête:

Bob, Joe
Joe, Bob
Bob, Bob
Joe, Joe

Cela me montre le "de" et "pour" pour chaque élément dans le tableau.

Je peux obtenir ce résultat en utilisant la requête suivante:

SELECT DISTINCT [NAME] 
FROM TABLE A
INNER JOIN TABLE B ON A.ID = B.ID

Est-il de toute façon pour moi d'obtenir le même résultat sans l'utilisation de "distinct" dans l'instruction select? Si je ne comprend pas le distinct, je serai de retour 16 dossiers, pas 4.

Une raison particulière DISTINCTE ne doit pas être utilisé?
C'est un problème que j'ai avec un plus grand requête qui prend plus de 2,5 minutes pour s'exécuter. Je suis en train d'essayer de se débarrasser de l'extérieur au niveau distinct sur cette requête dans l'espoir qu'il permettra d'améliorer les performances et ce n'est qu'une simple illustration du concept.
Juste pour être clair, vous pouvez poster le schéma/données de l'échantillon pour le Tableau A/B indiqué dans votre requête?
Ainsi, pour l'exemple ici, le schéma et les données de l'exemple est exactement comme je l'ai posté ci-dessus. Deux colonnes, l'une appelée ID, l'autre appelé "Nom", avec les données comme indiqué ci-dessus.
Droit, mais pour moi, on dirait que vous êtes soit de rejoindre la table pour lui-même ou que vous avez deux tables (pour cet exemple) le même schéma, et je voulais juste voir qui c'était.

OriginalL'auteur Amanda Kitson | 2011-08-16