Re: BUG #1540: Enhancement request: 'ambiguous' column reference in psql - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #1540: Enhancement request: 'ambiguous' column reference in psql
Date
Msg-id 4912.1110776797@sss.pgh.pa.us
Whole thread Raw
In response to BUG #1540: Enhancement request: 'ambiguous' column reference in psql  ("Richard Neill" <postgresql@richardneill.org>)
Responses Re: BUG #1540: Enhancement request: 'ambiguous' column reference  (Richard Neill <rn214@hermes.cam.ac.uk>)
List pgsql-bugs
"Richard Neill" <postgresql@richardneill.org> writes:
> SELECT instrument,priceband,pounds FROM tbl_instruments,tbl_prices WHERE
> tbl_instruments.priceband=tbl_prices.priceband;

> ERROR:  column reference "priceband" is ambiguous

> I think that the first query ought to succeed, since although priceband is
> ambiguous (it could mean either tbl_prices.priceband or
> tbl_instruments.priceband), the information in the WHERE clause means that
> they are explicitly equal, and so it doesn't matter which one we use.

Doing that would be contrary to the SQL specification, AFAICS.

However, you can get the effect you want by writing the query like

SELECT instrument,priceband,pounds FROM
tbl_instruments JOIN tbl_prices USING (priceband);

which both provides the join condition and logically merges the two
input columns into just one output column.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: BUG #1537: alter table statement
Next
From: Tom Lane
Date:
Subject: Re: BUG #1539: Suggestion