On 7/05/2005 11:00 a.m., Rhino wrote:
> Actually, the error message is misleading. There is nothing that I would
> call ambiguous in your query: you have a syntax error. The join should be
> written:
>
> select pk from a inner join b on a.col1 = b.col2
>
> Of course, you need to replace 'a.col1' and 'b.col2' with real column names
> from tables a and b respectively.
>
> Rhino
Not true, his join syntax is correct.
select pk from a inner join b using (pk)
is the same as saying
select pk from a inner join b on a.pk = b.pk
However, MySQL is complaining about the "select pk" part because it
doesn't know whether to select a.pk or b.pk. I think what Dan is arguing
is that MySQL should know from the join that a.pk and b.pk are the same,
so it doesn't matter which one it uses.
-Simon
>
> ----- Original Message -----
> From: "Dan Bolser" <dmb@stripped>
> To: <mysql@stripped>
> Sent: Friday, May 06, 2005 6:50 PM
> Subject: amPiguous!
>
>
>
>>Why are columns included in the join between two tables ambigious?
>>
>>It seems that they should *not* be ambigious!
>>
>>Like this
>>
>>select pk from a inner join b using (pk);
>>
>>ERROR 1052 (23000): Column 'pk' in field list is ambiguous!!!
>>
>>Is this a bug, or is it like this for a reason? It drives me nuts, because
>>it is not ambigious (as far as I can tell). Am I a fool?
>>