Teradata - 查询 - 使用In与equals过滤器

时间:2017-12-13 06:58:46

标签: sql filter teradata equals

有人可以帮我理解下面两个之间的区别吗?

SELECT A.ACCT_NBR 
FROM TABLE_1 A
WHERE A.ACCT_NBR IN (SELECT DISTINCT B.ACCT_NBR
                    FROM TABLE_2 B)

SELECT A.ACCT_NBR 
FROM TABLE_1 A
WHERE A.ACCT_NBR IN (SELECT DISTINCT B.ACCT_NBR
                    FROM TABLE_2 B
                    WHERE B.ACCT_NBR = A.ACCT_NBR)

让我们假设数据类型不是问题。 我也可以做一个简单的内连接。但我需要了解有关此特定IN查询的详细信息。

通过SQLA生成的解释计划是彼此的副本,只有不同的假脱机大小(查询#1需要较小的假脱机大小)

示例数据

TABLE_1
ACCT_NBR | ACCT_ID
------------------
1111     | AAAA
2222     | BBBB
3333     | CCCC
4444     | DDDD


TABLE_2
PK | ACCT_NBR | ACCT_ID
-----------------------
1  | 1111     | AAAA
2  | 3333     | CCCC
3  | 1111     | AAAA

EXPECTED RESULT
ACCT_NBR
---------
1111
3333

0 个答案:

没有答案