引用同一张表时如何避免多次联接

时间:2018-09-06 07:25:06

标签: postgresql

如果我有关系表

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 INTOTEMP TABLEMATERIALIZE VIEW。不确定什么概念可以在这里提供帮助。

0 个答案:

没有答案