From: | Richard Neill <rn214(at)hermes(dot)cam(dot)ac(dot)uk> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Richard Neill <postgresql(at)richardneill(dot)org>, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #1540: Enhancement request: 'ambiguous' column reference |
Date: | 2005-03-14 23:18:27 |
Message-ID: | 42361BC3.2030200@hermes.cam.ac.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Dear Tom and Neil,
Thanks very much for your help, and your explanations. This makes a lot
of sense, and I agree - this bug is definitely invalid.
Best wishes
Richard
Tom Lane wrote:
> "Richard Neill" <postgresql(at)richardneill(dot)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
>
From | Date | Subject | |
---|---|---|---|
Next Message | Jason Erickson | 2005-03-15 05:53:12 | BUG #1545: LIBPQ Windows Version not calling WSACleanup for every WSAStartup |
Previous Message | Tom Lane | 2005-03-14 18:39:59 | Re: BUG #1542: pg_dump seg fault |