Что-то вроде этого:
select tech.name as tech_name,
customer.name as customer_name,
qa.name as qa_name
from Workorders
inner join User as tech on tech.userId = Workorders.techId
inner join User as customer on customer.useId = Workorders.CustomerId
inner join User as qa on qa.useId = Workorders.QAID
(Возможно, нужно немного настроить, но идея должна быть здесь)
то есть вы:
- начиная с заказа
- внутреннее соединение на своем техническом парне (пользователь),
- и затем внутреннее присоединение к своему клиенту (другому пользователю)
- и т. Д.
И это позволяет вам получить каждое имя, используя правильный псевдоним в предложении select.
Обратите внимание, что я использовал псевдонимы и в предложении select - возможно, было бы полезно иметь имена "worker_name" и "tech_name" вместо двух имен столбцов "name" - особенно если вы вызываете этот запрос из какого-то другого язык программирования.
Примечание: если одно из этих полей userId может иметь значение NULL, вы можете использовать левое соединение вместо внутреннего соединения.