Voici un exemple de l'ensemble de données avec lequel je travaille. Je suis en train d'écrire une requête qui me permettra de demander une ligne de la table des éléments, et afficher le nom d'utilisateur de la table des utilisateurs à la place de l'utilisateur ids:SQL Server JOIN - affichage de deux valeurs jointes dans une requête mappée à une autre table?
Table 1 - users table
User ID | User Name
--------------------
12 | Fred
13 | Ted
14 | Ned
Table 2 - items Table
Item ID | Submitted User | Assigned User
----------------------------------------
234 | 12 | 14
345 | 12 | 13
456 | 14 | 12
Ceci est aussi loin que possible obtenir, que l'on retourne le nom d'utilisateur correctement labled:
SELECT users.[user name] AS [Submitted User] FROM items
JOIN users ON items.[Assigned User] = users.[User ID]
WHERE items.[Item ID] = '234'
le problème est que si on travaille sur le terrain, je dois obtenir à la fois l'utilisateur soumis et l'utilisateur affecté. J'essaie de le faire en une seule requête ... J'ai le sentiment que cela peut être fait mais je ne sais pas exactement comment. Si j'essaie d'assigner les champs plus d'une fois, j'obtiens une erreur à propos de la corrélation. Voici un exemple de ce que j'essayé donne une erreur de corrélation:
SELECT users.[user name] AS [Submitted User], users.[user name] AS [Assigned User] FROM items
JOIN users ON items.[Submitted User] = users.[User ID]
JOIN users ON items.[Assigned User] = users.[User ID]
WHERE items.[Item ID] = '234'
C'est exactement ce que je suis en train de faire:
SELECT
items[Submitted User].users.[user name] AS [Reported User],
items[Assigned User].users.[user name] AS [Assigned User]
WHERE items.[Item ID] = '234'</pre>
Ceci est la réponse que je suis en train de faire:
Submitted User | Assigned user
Fred - Ted
Cest bien. +1 pour les bonnes suggestions X-) –
Fonctionne très bien, merci beaucoup! Il m'a fallu quelques tentatives pour convertir ceci en tables et valeurs de base de données ... mais après cela je pense avoir une meilleure idée de ce que ça fait. Merci encore! – DirtyBirdNJ