Ошибка дублирования имени столбца при создании таблицы из выбора - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть объединение на 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 голосов
/ 25 сентября 2018

Если единственными дублированными столбцами являются те, которые используются для условий join и id только в p и duc, то вы можете использовать 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';
0 голосов
/ 25 сентября 2018

Столбец 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' 
...