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

时间:2015-04-08 13:58:14

标签: sql teradata

我试图运行以下查询

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] [错误3809] [SQLState 42S02]列' id'很暧昧。

由于我想在ID列上创建索引。我的问题是,有没有办法避免加入列重复或消除索引歧义?

2 个答案:

答案 0 :(得分:1)

这是由于so.*, pu.*,两个表都有一个名为id的列,因此您尝试创建一个具有相同列名的表两次。

*更改为列列表,并排除id或添加别名,例如so.id as so_id

答案 1 :(得分:0)

这一行:

with data primary index(id)

这里的“id”表应该来自哪个?这就是您的错误所在。