On Sat, 7 May 2005, Jochem van Dieten wrote:
>On 5/7/05, Dan Bolser wrote:
>>
>> Why are columns included in the join between two tables ambigious?
>
>Because MySQL does not follow the SQL standard (ISO/IEC 9075-2:2003).
>
>
>> 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?
>
>It is not ambiguous according to the SQL standard. If this behaviour
>of MySQL is documented it is an omission in the MySQL implementation
>that you get the error. If this behaviour is not documented, it is a
>bug.
Perhaps the omission is documented? Should I try to log this as a bug?
I found that the following *does not* cause problems...
select * from a inner join b using (pk) group by pk;
I haven't explored the above further, but it shows that mysql goes at
least some way toward implementing the standard (if I understand what you
wrote corectly).
Out of interest, what would happen in the following case...
select pk from a inner join b on a.pk = b.pk+1;
Would that be 'correctly' ambigious according to the sql specification?
Cheers,
Dan.
>
>Jochem
>
>--
>MySQL General Mailing List
>For list archives: http://lists.mysql.com/mysql
>To unsubscribe: http://lists.mysql.com/mysql?unsub=1
>