可以针对Teradata优化以下查询吗?(Teradata Version) - 获取所有记录以及另一个表中的所有相应记录
我们需要小桌子的所有记录,再加上从大表B中所有相应记录,在一个非唯一键
或者那场比赛,换句话说:一切,除了所有的B已在A.不匹配
也许加入JOIN?或者是一个不相关的查询的子选择,这是否也适用于Teradata?
SELECT a.nonunique
, a.colX
FROM small_tab a
UNION ALL
SELECT b.nonunique
, b.colY
FROM large_tab b
WHERE EXISTS (
SELECT 1
FROM small_tab a
WHERE a.nonuniqe = b.nonunique
);
感谢您的帮助!
=========与非相关子查询基于quanos在this MySQL question答案更新====
,将下面的语句是更快也Teradata的?
SELECT a.nonunique
, a.colX
FROM small_tab a
UNION ALL
SELECT b.nonunique
, b.colY
FROM large_tab b
WHERE b.nonunique IN
(
SELECT DISTINCT nonunique
FROM small_tab
GROUP BY nonunique
)
我不能在Teradata的测试目前,只能在家里有一个Oracle实例..
你真的需要'UNION'吗?独特的处理是一项巨大的开销,“UNION ALL”会更快。 – dnoeth
谢谢,我监督了这一点。它来自我第一次使用的另一个选择,我认为效率较低(涉及返回重复的连接)。更新.. – Rusty75