Как связать 1 таблицу с несколькими столбцами в другой таблице без использования многократного запроса JOIN?Вот мой сценарий:
У меня есть таблица User
с ID
и Name
User
+---------+------------+
| Id | Name |
+---------+------------+
| 1 | John |
| 2 | Mike |
| 3 | Charles |
+---------+------------+
И таблица Product
с несколькими столбцами, но только фокус на 2 столбцах CreateBy
И ModifiedBy
+------------+-----------+-------------+
| product_id | CreateBy | ModifiedBy |
+------------+-----------+-------------+
| 1 | 1 | 3 |
| 2 | 1 | 3 |
| 3 | 2 | 3 |
| 4 | 2 | 1 |
| 5 | 2 | 3 |
+------------+-----------+-------------+
При нормальном JOIN
мне нужно сделать 2 РЕЙСА:
SELECT p.Product_id,
u1.Name AS CreateByName,
u2.Name AS ModifiedByName
FROM Product p
JOIN USER user u1 ON p.CreateBy = u1.Id,
JOIN USER user u2 ON p.ModifiedBy = u2.Id
, чтобы получить результат
+------------+---------------+-----------------+
| product_id | CreateByName | ModifiedByName |
+------------+---------------+-----------------+
| 1 | John | Charles |
| 2 | John | Charles |
| 3 | Mike | Charles |
| 4 | Mike | John |
| 5 | Mike | Charles |
+------------+---------------+-----------------+
Как мне избежать этого 2 раза JOIN
?
Я использую MS-SQL, но открыт для всех запросов SQL для моего собственного любопытного изучения