Re: ERROR: column "gid" specified more than once

Поиск
Список
Период
Сортировка
От ktm@rice.edu
Тема Re: ERROR: column "gid" specified more than once
Дата
Msg-id 20150512170201.GI31129@aart.rice.edu
обсуждение исходный текст
Ответ на Re: ERROR: column "gid" specified more than once  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-sql
On Tue, May 12, 2015 at 09:19:23AM -0700, David G. Johnston wrote:
> On Tue, May 12, 2015 at 9:09 AM, David G. Johnston <
> david.g.johnston@gmail.com> wrote:
> 
> > On Tue, May 12, 2015 at 8:53 AM, ktm@rice.edu <ktm@rice.edu> wrote:
> >
> >> On Tue, May 12, 2015 at 08:49:53AM -0700, David G. Johnston wrote:
> >> > On Tuesday, May 12, 2015, Jason Aleski <jason.aleski@gmail.com> wrote:
> >> >
> >> > > You probably need to specify your wildcard on both tables.
> >> > >
> >> > > CREATE TABLE "BorujerdDistCent" as
> >> > > SELECT
> >> > >   "Borujerd".*, "Lorestan".*,
> >> > > t_distance(st_centroid("Lorestan".geometry),"Borujerd".geometry)/1000
> >> > > as DistFromCntroid
> >> > > FROM "Borujerd", "Lorestan"
> >> > >
> >> > >
> >> > My bad on the assumed -bugs list from before...
> >> >
> >> > Anyway, how is this suugestion different from simply saying "*" without
> >> a
> >> > relation specification - which the OP did and it didn't work.
> >> >
> >> > David J.
> >>
> >> Because the column names are differentiated by their prefixes then:
> >>
> >> Borujerd.gid, Lorestan.gid
> >>
> >> No conflict.
> >>
> >>
> > I suggest you test that theory out.
> >
> >
> ​The reason why this advice is wrong is because the error is coming from
> the CREATE TABLE AS portion and not the select query.
> 
> ​Within the following:​
> 
> ​CREATE TABLE testtable AS
> SELECT t1.*, t2.*
> FROM ( VALUES (1::int) ) t1 (s)
> CROSS JOIN ( VALUES (2::int) ) t2 (s)​
> 
> executing just the SELECT portion will indeed output a two-column result
> with both columns named "s".
> 
> However, it is not possible to create a table with two columns having the
> same name and so using the exact same query will fail with the duplicate
> name error.
> 
> The only way to solve the problem is to alias the output columns or choose
> not to output one of the columns.
> 
> SELECT t1.s AS s_t1, t2.s AS s_t2 FROM [...]
> or
> SELECT t1.* FROM [...]
> 
> As shown above column names in the result do not carry over their source
> identifier - just the name itself.
> 
> David J.

Yes. You are correct. Sorry for the noise.

Ken



В списке pgsql-sql по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: ERROR: column "gid" specified more than once
Следующее
От: Tim Dudgeon
Дата:
Сообщение: Re: generating json without nulls