Как избежать многократного объединения при ссылке на одну и ту же таблицу - PullRequest
0 голосов
/ 06 сентября 2018

Если у меня есть таблица отношений

user_manager_id | user_worker_id
     1                  2

Чтобы получить имя пользователя для обоих, мне нужно

SELECT 
  t1.*,
  t2.username as m_username, 
  t3.username as w_username
  FROM relationships as t1 
   LEFT OUTER JOIN users as t2
      where t1.user_manager_id = t2.id
   LEFT OUTER JOIN users as t3
      where t1.user_worker_id= t3.id

Как я могу оптимизировать это, чтобы я мог предотвратить присоединение дважды к одной таблице? Я знаю, что это преждевременная оптимизация, но я хочу изучить правильные основы, чтобы применить это в большем масштабе.

Я думаю, что он должен сканировать таблицу пользователей дважды, есть ли способ сделать так, чтобы он сканировал только один раз? Я изучил SELECT INTO, TEMP TABLE, MATERIALIZE VIEW. Не уверен, что концепция может помочь здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...