通过选择创建表时列名称重复错误

时间:2018-09-25 05:06:13

标签: sql amazon-redshift ddl

我在3个具有大量字段的表上进行了联接。联接后由于列名重复而不断出错。使用别名尚未为我解决问题。

有没有一种方法可以在加入之前删除重复的列。我无力选择必填列。

create temp table ashresults 
as 
select * 
from gp p 
  inner join gv v on p.fd1 = v.fd1 
  inner join gdc duc on p.id = duc.id 
where cast(v.rt as int) >= 1000 
and cast(v.cn as date ) >= '2016-07-01' 

此语句给出了错误

2 个答案:

答案 0 :(得分:1)

fd1列存在于多个表中,因此您必须选择table.column_name,否则将引发错误

  select p.*,duc.*,gv.* 
    from gp p 
      inner join gv v on p.fd1 = v.fd1 
      inner join gdc duc on p.id = duc.id 
    where cast(v.rt as int) >= 1000 
    and cast(v.cn as date ) >= '2016-07-01' 

答案 1 :(得分:1)

如果唯一重复的列是用于join条件的列 id仅在pduc中,则您可以使用using

select * 
from gp p join
     gv v 
     using (fd1) join
     gdc duc 
     using (id)
where cast(v.rt as int) >= 1000 and
      cast(v.cn as date ) >= '2016-07-01';