【发布时间】:2015-07-19 21:18:18
【问题描述】:
我有一个关于 teradata 中的多个联接的广泛问题。
例如,我有:table1、table2、table3、table4。我想为他们所有人做一个INNER JOIN
所以:
SELECT a.*, b.*, c.*, d.*
FROM table1 a
JOIN table2 b ON a.acct_ID = b.acct_ID
JOIN table3 c ON a.acct_ID = c.acct_ID
JOIN table4 d ON a.acct_ID = d.acct_ID
那么这里发生的情况是,每次连接发生时,都会在此连续(((table 1+ table 2)+table 3)+table 4) 中创建一个临时表?
on 语句应该是 b.acct_ID = c.acct_ID 和 c.acct_ID = d.acct_ID 以使语句高效,还是因为创建了临时表而这没有区别?
【问题讨论】:
-
由数据库引擎决定。如果您没有获得所需的性能,请考虑优化。如果您在知道自己有问题之前尝试优化,您往往会发疯。这就像试图达到一个不断变化的需求目标......有多好就足够好......现在,如果您知道性能很差,那么请查看执行计划并找出最好的。
标签: sql join left-join inner-join teradata