使用通配符连接表并避免重复列
Joining tables using wildcard and avoiding repeated columns
我正在尝试运行以下查询
create multiset volatile table newTable, no log as (
SELECT so.*, pu.*
FROM db.table1 so
left outer join db.table2 pu on so.id = pu.id
) with data primary index(id) on commit preserve rows;
Teradata 出现以下错误:
[TeraJDBC 15.00.00.20] [Error 3809] [SQLState 42S02] Column 'id' is ambiguous.
因为我想在 ID 列上创建索引。那么,我的问题是,有没有办法避免连接列重复或消除索引歧义?
这一行:
with data primary index(id)
这里 "id" 应该来自哪个 table?这就是你的错误所在。
这是由于 so.*, pu.*
,两个 table 都有一个名称为 id
的列,因此您尝试使用同一列创建一个 table命名两次。
将 *
更改为列列表并排除 id
或添加别名,例如so.id as so_id
我正在尝试运行以下查询
create multiset volatile table newTable, no log as (
SELECT so.*, pu.*
FROM db.table1 so
left outer join db.table2 pu on so.id = pu.id
) with data primary index(id) on commit preserve rows;
Teradata 出现以下错误:
[TeraJDBC 15.00.00.20] [Error 3809] [SQLState 42S02] Column 'id' is ambiguous.
因为我想在 ID 列上创建索引。那么,我的问题是,有没有办法避免连接列重复或消除索引歧义?
这一行:
with data primary index(id)
这里 "id" 应该来自哪个 table?这就是你的错误所在。
这是由于 so.*, pu.*
,两个 table 都有一个名称为 id
的列,因此您尝试使用同一列创建一个 table命名两次。
将 *
更改为列列表并排除 id
或添加别名,例如so.id as so_id