使用通配符连接表并避免重复列

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