如果我有关系表
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
。不确定什么概念可以在这里提供帮助。