On Sat, 7 May 2005, Simon Garner wrote:
>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.
Exactly! Afterall a.pk = b.pk! However, I can imagine how this could
become somewhat tricky with the ON syntax.
>
>-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?
>>>
>
>