Если у меня есть таблица отношений
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
. Не уверен, что концепция может помочь здесь.