【发布时间】:2016-10-06 10:53:10
【问题描述】:
当我在 Teradata 中的两个不同表上执行以下联接时,我遇到了一个非常奇怪的问题。没有返回任何结果,说明table_A和table_B没有共同的值。
SELECT
*
FROM
table_A a JOIN table_B b ON a.id = b.id;
0 rows returned
但是,当我运行以下两个查询时,我得到的结果表明两个表中的 id 列至少有一行带有“John”。
SELECT
id
FROM table_A
WHERE
id = 'John';
1 row returned
SELECT
id
FROM table_B
WHERE
id = 'John';
1 row returned
table_A和table_B中所有列的数据类型为null
【问题讨论】:
-
你可以试试:
ON trim(a.id) = trim(b.id);以确保那里没有任何空白区域吗?另外,您说这些字段的数据类型为NULL?我不相信你可以有一个 NULL 数据类型。id字段是 Char() 还是 VARCHAR()? -
各个查询返回什么? id的数据类型是什么?
-
切换到 FULL OUTER JOIN 会返回什么?