Вот пример набора данных, с которым я работаю. Я пытаюсь написать запрос, который позволит мне запросить строку из таблицы элементов и отобразить имя пользователя из таблицы пользователей вместо идентификаторов пользователей:
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
Это насколько я могу получить, что возвращает одно правильно помеченное имя пользователя:
SELECT users.[user name] AS [Submitted User] FROM items
JOIN users ON items.[Assigned User] = users.[User ID]
WHERE items.[Item ID] = '234'
Проблема в том, что хотя ОДНО поле работает, мне нужно получить и отправленного, и назначенного пользователя. Я пытаюсь сделать это одним запросом ... У меня такое чувство, что это можно сделать, но я просто не знаю точно, как. Если я пытаюсь присвоить поля более одного раза, я получаю ошибку о корреляции. Вот пример того, что я пробовал, что дает ошибку корреляции:
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'
Это именно то, что я пытаюсь сделать:
<code>SELECT
items[Submitted User].users.[user name] AS [Reported User],
items[Assigned User].users.[user name] AS [Assigned User]
WHERE items.[Item ID] = '234'
Вот ответ, который я пытаюсь получить:
Submitted User | Assigned user
Fred - Ted