可以針對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